1 16 package org.outerj.daisy.authentication; 17 18 import org.outerj.daisy.repository.user.User; 19 import org.outerj.daisy.repository.user.UserManager; 20 import org.outerj.daisy.repository.user.Role; 21 import org.outerj.daisy.repository.RepositoryException; 22 import org.outerj.daisy.authentication.AuthenticationException; 23 24 public class UserCreator { 25 private final String defaultRole; 26 private final String [] roles; 27 private final boolean updateableByUser; 28 private final String scheme; 29 30 public UserCreator(String [] roles, String defaultRole, boolean updateableByUser, String scheme) { 31 this.roles = roles; 32 this.defaultRole = defaultRole; 33 this.updateableByUser = updateableByUser; 34 this.scheme = scheme; 35 } 36 37 public User create(String login, UserManager userManager) throws AuthenticationException { 38 User user = userManager.createUser(login); 39 try { 40 for (int i = 0; i < roles.length; i++) { 41 Role role = userManager.getRole(roles[i], false); 42 user.addToRole(role); 43 } 44 45 if (defaultRole != null) 46 user.setDefaultRole(userManager.getRole(defaultRole, false)); 47 48 user.setUpdateableByUser(updateableByUser); 49 user.setAuthenticationScheme(scheme); 50 51 user.save(); 52 } catch (RepositoryException e) { 53 throw new AuthenticationException("Error creating new user during login.", e); 54 } 55 56 return user; 57 } 58 } 59 | Popular Tags |