1 16 package com.blandware.atleap.webapp.action.core.user; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.common.util.StringUtil; 20 import com.blandware.atleap.model.core.Role; 21 import com.blandware.atleap.model.core.User; 22 import com.blandware.atleap.model.core.Group; 23 import com.blandware.atleap.service.core.UserManager; 24 import com.blandware.atleap.service.core.GroupManager; 25 import com.blandware.atleap.service.exception.BeanAlreadyExistsException; 26 import com.blandware.atleap.webapp.action.core.BaseAction; 27 import com.blandware.atleap.webapp.form.UserForm; 28 import com.blandware.atleap.webapp.util.core.WebappConstants; 29 import com.blandware.atleap.webapp.util.core.WebappUtil; 30 import org.apache.struts.action.ActionForm; 31 import org.apache.struts.action.ActionForward; 32 import org.apache.struts.action.ActionMapping; 33 import org.apache.struts.action.ActionMessage; 34 import org.apache.struts.action.ActionMessages; 35 36 import javax.servlet.http.HttpServletRequest ; 37 import javax.servlet.http.HttpServletResponse ; 38 import java.util.List ; 39 40 65 public final class CreateUserAction extends BaseAction { 66 75 public ActionForward execute(ActionMapping mapping, ActionForm form, 76 HttpServletRequest request, HttpServletResponse response) throws Exception { 77 78 if ( !isCancelled(request) ) { 79 80 UserForm userForm = (UserForm) form; 81 User user = new User(); 82 WebappUtil.copyProperties(user, userForm, request); 83 user.setEnabled(Boolean.TRUE); 84 85 GroupManager groupManager = (GroupManager) getBean(Constants.GROUP_MANAGER_BEAN); 86 Group usersGroup = groupManager.retrieveGroup(Constants.USERS_GROUP); 87 usersGroup.addUser(user); 88 List usersGroupRoles = usersGroup.getRoles(); 89 for (int i = 0; i < usersGroupRoles.size(); i++) { 90 Role role = (Role) usersGroupRoles.get(i); 91 user.addRole(role, usersGroup); 92 } 93 94 boolean encryptPassword = ((Boolean ) getConfiguration().get(Constants.ENCRYPT_PASSWORD)).booleanValue(); 95 String encAlgorithm = (String ) getConfiguration().get(Constants.ENC_ALGORITHM); 96 if ( encryptPassword ) { 97 user.setPassword(StringUtil.encodePassword(userForm.getPassword(), encAlgorithm)); 98 } 99 UserManager userManager = (UserManager) getBean(Constants.USER_MANAGER_BEAN); 100 try { 101 userManager.createUser(user); 102 } catch ( BeanAlreadyExistsException e ) { 103 ActionMessages errors = new ActionMessages(); 105 errors.add("userAlreadyExists", new ActionMessage("core.user.errors.alreadyExists")); 106 saveErrors(request, errors); 107 saveToken(request); 108 return mapping.getInputForward(); 109 } 110 111 if ( request.isUserInRole("core-user-assignRolesAndGroups") ) { 112 request.setAttribute(WebappConstants.USER_NAME_KEY, user.getName()); 113 return mapping.findForward("callAssignRolesAndGroups"); 114 } else { 115 return mapping.findForward("admin"); 116 } 117 } else { 118 if ( request.isUserInRole("core-user-list") ) { 119 return mapping.findForward("listUsers"); 120 } else { 121 return mapping.findForward("admin"); 122 } 123 } 124 } 125 } | Popular Tags |