@RequestMapping(value = "/add", method = RequestMethod.POST) @PreAuthorize("hasRole('CTRL_PERM_ADD_POST')") public String addPermission( @Valid @ModelAttribute PermissionDTO permissionDTO, BindingResult result, RedirectAttributes redirectAttrs) { logger.debug("IN: Permission/add-POST"); logger.debug(" DTO: " + permissionDTO.toString()); if (result.hasErrors()) { logger.debug("PermissionDTO add error: " + result.toString()); redirectAttrs.addFlashAttribute( "org.springframework.validation.BindingResult.permissionDTO", result); redirectAttrs.addFlashAttribute("permissionDTO", permissionDTO); return "redirect:/permission/list"; } else { Permission perm = new Permission(); try { perm = getPermission(permissionDTO); permissionService.addPermission(perm); String message = messageSource.getMessage( "ctrl.message.success.add", new Object[] {businessObject, perm.getPermissionname()}, Locale.US); redirectAttrs.addFlashAttribute("message", message); return "redirect:/permission/list"; } catch (DuplicatePermissionException e) { String message = messageSource.getMessage( "ctrl.message.error.duplicate", new Object[] {businessObject, permissionDTO.getPermissionname()}, Locale.US); redirectAttrs.addFlashAttribute("error", message); return "redirect:/permission/list"; } catch (RoleNotFoundException e) { String message = messageSource.getMessage( "ctrl.message.error.notfound", new Object[] {"role ids", permissionDTO.getPermRoles().toString()}, Locale.US); redirectAttrs.addFlashAttribute("error", message); return "redirect:/permission/list"; } } }
@PreAuthorize("hasAnyRole('CTRL_PERM_ADD_POST','CTRL_PERM_EDIT_POST')") public Permission getPermission(PermissionDTO permissionDTO) throws RoleNotFoundException { Set<Role> roleList = new HashSet<Role>(); Permission perm = new Permission(); Role role = new Role(); perm.setId(permissionDTO.getId()); perm.setPermissionname(permissionDTO.getPermissionname()); if (permissionDTO.getPermRoles() != null) { for (Integer roleId : permissionDTO.getPermRoles()) { role = roleService.getRole(roleId); logger.debug(" ROLE: " + role.toString()); roleList.add(role); } perm.setPermRoles(roleList); } logger.debug(" PERM: " + perm.toString()); return perm; }
@RequestMapping(value = "/edit", method = RequestMethod.POST) @PreAuthorize("hasRole('CTRL_PERM_EDIT_POST')") public String editPermission( @Valid @ModelAttribute PermissionDTO permissionDTO, BindingResult result, RedirectAttributes redirectAttrs, @RequestParam(value = "action", required = true) String action) { logger.debug("IN: Permission/edit-POST: " + action); if (action.equals(messageSource.getMessage("button.action.cancel", null, Locale.US))) { String message = messageSource.getMessage( "ctrl.message.success.cancel", new Object[] {"Edit", businessObject, permissionDTO.getPermissionname()}, Locale.US); redirectAttrs.addFlashAttribute("message", message); } else if (result.hasErrors()) { logger.debug("Permission-edit error: " + result.toString()); redirectAttrs.addFlashAttribute( "org.springframework.validation.BindingResult.permissionDTO", result); redirectAttrs.addFlashAttribute("permissionDTO", permissionDTO); return "redirect:/permission/edit?id=" + permissionDTO.getId(); } else if (action.equals(messageSource.getMessage("button.action.save", null, Locale.US))) { logger.debug("Permission/edit-POST: " + permissionDTO.toString()); try { Permission permission = getPermission(permissionDTO); permissionService.updatePermission(permission); String message = messageSource.getMessage( "ctrl.message.success.update", new Object[] {businessObject, permissionDTO.getPermissionname()}, Locale.US); redirectAttrs.addFlashAttribute("message", message); } catch (DuplicatePermissionException unf) { String message = messageSource.getMessage( "ctrl.message.error.duplicate", new Object[] {businessObject, permissionDTO.getPermissionname()}, Locale.US); redirectAttrs.addFlashAttribute("error", message); return "redirect:/permission/list"; } catch (PermissionNotFoundException unf) { String message = messageSource.getMessage( "ctrl.message.error.notfound", new Object[] {businessObject, permissionDTO.getPermissionname()}, Locale.US); redirectAttrs.addFlashAttribute("error", message); return "redirect:/permission/list"; } catch (RoleNotFoundException unf) { String message = messageSource.getMessage( "ctrl.message.error.notfound", new Object[] {"role ids", permissionDTO.getPermRoles().toString()}, Locale.US); redirectAttrs.addFlashAttribute("error", message); return "redirect:/permission/list"; } } return "redirect:/permission/list"; }