1 21 package com.jaspersoft.jasperserver.war.control; 22 23 import javax.servlet.ServletException ; 24 import javax.servlet.http.HttpServletRequest ; 25 import javax.servlet.http.HttpServletResponse ; 26 27 import org.springframework.validation.BindException; 28 import org.springframework.web.bind.ServletRequestDataBinder; 29 import org.springframework.web.multipart.support.ByteArrayMultipartFileEditor; 30 import org.springframework.web.servlet.ModelAndView; 31 import org.springframework.web.servlet.mvc.SimpleFormController; 32 33 import com.jaspersoft.jasperserver.api.common.domain.ExecutionContext; 34 import com.jaspersoft.jasperserver.api.common.domain.impl.ExecutionContextImpl; 35 import com.jaspersoft.jasperserver.war.common.JasperServerConst; 36 import com.jaspersoft.jasperserver.war.common.JasperServerUtil; 37 38 import com.jaspersoft.jasperserver.api.metadata.user.domain.User; 39 import com.jaspersoft.jasperserver.api.metadata.user.domain.Role; 40 import com.jaspersoft.jasperserver.api.metadata.user.service.UserAuthorityService; 41 import com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl; 42 43 import java.util.*; 44 45 46 public class CRUDUserController extends SimpleFormController { 47 48 protected UserAuthorityService userAuthService; 50 51 56 public UserAuthorityService getUserAuthService() { 57 return userAuthService; 58 } 59 60 65 public void setUserAuthService(UserAuthorityService userAuthService) { 66 this.userAuthService = userAuthService; 67 } 68 69 75 public Object formBackingObject(HttpServletRequest request) { 76 77 User user = null; 78 ExecutionContext context = new ExecutionContextImpl(); 79 String username = request.getParameter("userselected"); 80 81 if(username == null || username.trim().length() == 0) 82 user = userAuthService.newUser(context); 83 else 84 user = userAuthService.getUser(context, username); 85 86 if(user == null) 87 user = userAuthService.newUser(context); 88 89 String roleNames = request.getParameter("curruserroles"); 91 updateCurrentUserRoles(user, roleNames, context, false); 92 93 request.setAttribute("roleList", userAuthService.getRoles(context, null)); 94 return user; 95 } 96 97 102 public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, 103 Object command, BindException errors) throws Exception { 104 105 String toPage = request.getParameter("frompage"); 106 String enabled = request.getParameter("enabled"); 107 User user = (User)command; 108 109 String roleNames = request.getParameter("curruserroles"); 110 ExecutionContext context = new ExecutionContextImpl(); 111 112 if(!updateCurrentUserRoles(user, roleNames, context, true)) 113 throw new RuntimeException ("Error in User-Role Update. Cannot continue."); 114 115 if(enabled != null && enabled.equals("true")) 116 user.setEnabled(true); 117 else 118 user.setEnabled(false); 119 120 JasperServerUtil.trimDTOFieldSpaces(user); 121 122 userAuthService.putUser(null, user); 123 request.setAttribute("userList", userAuthService.getUsers(context, null)); 124 return new ModelAndView(toPage); 125 126 } 127 128 133 protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) 134 throws ServletException { 135 136 binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor()); 137 } 138 139 144 protected boolean updateCurrentUserRoles(User user, String seldRoles, ExecutionContext context, boolean clear) { 145 146 Role role = null; 147 String roleName = null; 148 149 if(clear) { 151 user.getRoles().clear(); 152 } 153 154 if(seldRoles != null && seldRoles.trim().length() != 0) { 156 StringTokenizer roles = new StringTokenizer(seldRoles, ";"); 157 while(roles.hasMoreTokens()) { 158 roleName = (String )roles.nextToken(); 159 role = userAuthService.getRole(context, roleName); 160 user.addRole(role); 161 } 162 } 163 return true; 164 } 165 166 } 167 | Popular Tags |