@RequestMapping(value="/roles/{id}", method=RequestMethod.GET) public String editRoleForm(@PathVariable Integer id, Model model) { Role role = securityService.getRoleById(id); Map<Integer, Permission> assignedPermissionMap = new HashMap<>(); List<Permission> permissions = role.getPermissions(); for (Permission permission : permissions) { assignedPermissionMap.put(permission.getId(), permission); } List<Permission> rolePermissions = new ArrayList<>(); List<Permission> allPermissions = securityService.getAllPermissions(); for (Permission permission : allPermissions) { if(assignedPermissionMap.containsKey(permission.getId())){ rolePermissions.add(permission); } else { rolePermissions.add(null); } } role.setPermissions(rolePermissions); model.addAttribute("role",role); //model.addAttribute("permissionsList",allPermissions); return viewPrefix+"edit_role"; }
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); }
public Role updateRole(Role role) { Role persistedRole = getRoleById(role.getId()); if(persistedRole == null){ throw new JCartException("Role "+role.getId()+" doesn't exist"); } persistedRole.setDescription(role.getDescription()); List<Permission> updatedPermissions = new ArrayList<>(); List<Permission> permissions = role.getPermissions(); if(permissions != null){ for (Permission permission : permissions) { if(permission.getId() != null) { updatedPermissions.add(permissionRepository.findOne(permission.getId())); } } } persistedRole.setPermissions(updatedPermissions); return roleRepository.save(persistedRole); }