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 CreateUserController extends CRUDUserController { 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("username"); 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 if(user.getRoles() != null) { 91 user.getRoles().clear(); 92 } 93 94 String roleNames = request.getParameter("curruserroles"); 96 updateCurrentUserRoles(user, roleNames, context, false); 97 98 request.setAttribute("roleList", userAuthService.getRoles(context, null)); 99 return user; 100 } 101 102 107 public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, 108 Object command, BindException errors) throws Exception { 109 110 String toPage = request.getParameter("frompage"); 111 String enabled = request.getParameter("enabled"); 112 User user = (User)command; 113 114 String roleNames = request.getParameter("curruserroles"); 115 ExecutionContext context = new ExecutionContextImpl(); 116 117 if(!updateCurrentUserRoles(user, roleNames, context, true)) 118 throw new RuntimeException ("Error in User-Role Update. Cannot continue."); 119 120 if(enabled != null && enabled.equals("true")) 121 user.setEnabled(true); 122 else 123 user.setEnabled(false); 124 125 JasperServerUtil.trimDTOFieldSpaces(user); 126 userAuthService.putUser(null, user); 127 request.setAttribute("userList", userAuthService.getUsers(context, null)); 128 return new ModelAndView(toPage); 129 130 } 131 132 137 protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) 138 throws ServletException { 139 super.initBinder(request, binder); 140 } 141 142 147 protected boolean updateCurrentUserRoles(User user, String seldRoles, ExecutionContext context, boolean clear) { 148 149 Role role = null; 150 String roleName = null; 151 152 if(clear) { 154 user.getRoles().clear(); 155 } 156 157 if(seldRoles != null && seldRoles.trim().length() != 0) { 159 StringTokenizer roles = new StringTokenizer(seldRoles, ";"); 160 while(roles.hasMoreTokens()) { 161 roleName = (String )roles.nextToken(); 162 role = userAuthService.getRole(context, roleName); 163 user.addRole(role); 164 } 165 } 166 return true; 167 } 168 169 } 170 | Popular Tags |