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; } }
@RequestMapping(value="/users/{id}", method=RequestMethod.GET) public String editUserForm(@PathVariable Integer id, Model model) { User user = securityService.getUserById(id); Map<Integer, Role> assignedRoleMap = new HashMap<>(); List<Role> roles = user.getRoles(); for (Role role : roles) { assignedRoleMap.put(role.getId(), role); } List<Role> userRoles = new ArrayList<>(); List<Role> allRoles = securityService.getAllRoles(); for (Role role : allRoles) { if(assignedRoleMap.containsKey(role.getId())){ userRoles.add(role); } else { userRoles.add(null); } } user.setRoles(userRoles); model.addAttribute("user",user); //model.addAttribute("rolesList",allRoles); return viewPrefix+"edit_user"; }
public User createUser(User user) { User userByEmail = findUserByEmail(user.getEmail()); if(userByEmail != null){ throw new JCartException("Email "+user.getEmail()+" already in use"); } List<Role> persistedRoles = new ArrayList<>(); List<Role> roles = user.getRoles(); if(roles != null){ for (Role role : roles) { if(role.getId() != null) { persistedRoles.add(roleRepository.findOne(role.getId())); } } } user.setRoles(persistedRoles); return userRepository.save(user); }
public User updateUser(User user) { User persistedUser = getUserById(user.getId()); if(persistedUser == null){ throw new JCartException("User "+user.getId()+" doesn't exist"); } List<Role> updatedRoles = new ArrayList<>(); List<Role> roles = user.getRoles(); if(roles != null){ for (Role role : roles) { if(role.getId() != null) { updatedRoles.add(roleRepository.findOne(role.getId())); } } } persistedUser.setRoles(updatedRoles); return userRepository.save(persistedUser); }