- try {
- if (Role.USER == type) {
- Node userProfile = jcrSecurityModel.sync(session, name, null);
- session.getWorkspace().getVersionManager()
- .checkout(userProfile.getPath());
- String password = "";
- // TODO add roles
- JcrUserDetails userDetails = new JcrUserDetails(userProfile,
- password, new ArrayList<GrantedAuthority>());
- session.save();
- session.getWorkspace().getVersionManager()
- .checkin(userProfile.getPath());
- userAdminService().createUser(userDetails);
- return new JcrEndUser(userDetails);
- } else if (Role.GROUP == type) {
- userAdminService().newRole(name);
- return new JcrGroup(name);
- } else {
- throw new ArgeoException("Unsupported role type " + type);
- }
- } catch (RepositoryException e) {
- throw new ArgeoException("Cannot create role " + name);
+ if (Role.USER == type) {
+ NewUserDetails userDetails = new NewUserDetails(name, null);
+ userAdminService().createUser(userDetails);
+ return new JcrEndUser((JcrUserDetails) userAdminService()
+ .loadUserByUsername(name));
+ } else if (Role.GROUP == type) {
+ userAdminService().newRole(name);
+ return new JcrGroup(name);
+ } else {
+ throw new ArgeoException("Unsupported role type " + type);