@Override public void validate(Object target, Errors errors) { Role role = (Role) target; String name = role.getName(); Role RoleByName = securityService.getRoleByName(name); if(RoleByName != null){ errors.rejectValue("name", "error.exists",new Object[]{name}, "Role "+name+" already exists"); } }
@RequestMapping(value="/roles", method=RequestMethod.POST) public String createRole(@Valid @ModelAttribute("role") Role role, BindingResult result, Model model, RedirectAttributes redirectAttributes) { roleValidator.validate(role, result); if(result.hasErrors()){ return viewPrefix+"create_role"; } Role persistedRole = securityService.createRole(role); logger.debug("Created new role with id : {} and name : {}", persistedRole.getId(), persistedRole.getName()); redirectAttributes.addFlashAttribute("info", "Role created successfully"); return "redirect:/roles"; }
@RequestMapping(value="/roles/{id}", method=RequestMethod.POST) public String updateRole(@ModelAttribute("role") Role role, BindingResult result, Model model, RedirectAttributes redirectAttributes) { Role persistedRole = securityService.updateRole(role); logger.debug("Updated role with id : {} and name : {}", persistedRole.getId(), persistedRole.getName()); redirectAttributes.addFlashAttribute("info", "Role updated successfully"); return "redirect:/roles"; }
private static Collection<? extends GrantedAuthority> getAuthorities(User user) { Set<String> roleAndPermissions = new HashSet<>(); List<Role> roles = user.getRoles(); for (Role role : roles) { roleAndPermissions.add(role.getName()); List<Permission> permissions = role.getPermissions(); for (Permission permission : permissions) { roleAndPermissions.add("ROLE_"+permission.getName()); } } String[] roleNames = new String[roleAndPermissions.size()]; Collection<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList(roleAndPermissions.toArray(roleNames)); return authorities; } }
public Role createRole(Role role) { Role roleByName = getRoleByName(role.getName()); if(roleByName != null){ throw new JCartException("Role "+role.getName()+" already exist"); } List<Permission> persistedPermissions = new ArrayList<>(); List<Permission> permissions = role.getPermissions(); if(permissions != null){ for (Permission permission : permissions) { if(permission.getId() != null) { persistedPermissions.add(permissionRepository.findOne(permission.getId())); } } } role.setPermissions(persistedPermissions); return roleRepository.save(role); }