1 16 package com.blandware.atleap.webapp.action.core.user; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.model.core.User; 20 import com.blandware.atleap.service.core.UserManager; 21 import com.blandware.atleap.webapp.action.core.BaseAction; 22 import com.blandware.atleap.webapp.form.UserForm; 23 import org.apache.commons.validator.GenericValidator; 24 import org.apache.struts.action.ActionForm; 25 import org.apache.struts.action.ActionForward; 26 import org.apache.struts.action.ActionMapping; 27 import org.apache.struts.action.ActionMessage; 28 import org.apache.struts.action.ActionMessages; 29 import org.springframework.orm.ObjectOptimisticLockingFailureException; 30 31 import javax.servlet.http.HttpServletRequest ; 32 import javax.servlet.http.HttpServletResponse ; 33 34 53 public final class ChangeUserStatusAction extends BaseAction { 54 63 public ActionForward execute(ActionMapping mapping, ActionForm form, 64 HttpServletRequest request, HttpServletResponse response) throws Exception { 65 66 UserForm userForm = (UserForm) form; 67 68 String userName = userForm.getName(); 69 if ( GenericValidator.isBlankOrNull(userName) ) { 70 if ( log.isWarnEnabled() ) { 71 log.warn("Missing user name. Returning to list."); 72 } 73 return mapping.findForward("listUsers"); 74 } 75 76 if ( userName.equals(request.getRemoteUser()) ) { 77 saveToken(request); 79 ActionMessages errors = new ActionMessages(); 80 errors.add("loggedUserCannotDisable", new ActionMessage("core.user.form.changeStatusDisabled")); 81 saveErrors(request, errors); 82 return mapping.findForward("listUsers"); 83 } 84 85 UserManager userManager = (UserManager) getBean(Constants.USER_MANAGER_BEAN); 86 User user = userManager.retrieveUser(userName); 87 88 if ( user == null ) { 89 ActionMessages errors = new ActionMessages(); 91 errors.add("userNotFound", new ActionMessage("core.user.errors.notFound")); 92 saveErrors(request, errors); 93 return mapping.findForward("listUsers"); 94 } 95 96 String status = request.getParameter("status"); 97 boolean alreadyEnabled = user.getEnabled() != null ? user.getEnabled().booleanValue() : false; 98 boolean enabled = true; 99 if ( !"enabled".equalsIgnoreCase(status) ) { 100 enabled = false; 101 } 102 103 try { 104 105 if ( (alreadyEnabled && !enabled) || (!alreadyEnabled && enabled) ) { 106 user.setEnabled(Boolean.valueOf(enabled)); 107 userManager.updateUser(user); 108 } 109 } catch ( ObjectOptimisticLockingFailureException e ) { 110 ActionMessages errors = new ActionMessages(); 112 errors.add("updateFailed", new ActionMessage("core.user.errors.updateFailed")); 113 saveErrors(request, errors); 114 return mapping.findForward("listUsers"); 115 } 116 return mapping.findForward("listUsers"); 117 } 118 } | Popular Tags |