/** @param roleNames the roleNames to set */ public void setRoleNames(List<String> roleNames) { removeList = new ArrayList<UserRole>(); addedList = new ArrayList<UserRole>(); this.roleNames = new ArrayList<String>(); if (roleNames == null) { for (UserRole role : roles) { removeList.add(role); } for (UserRole role : removeList) { this.removeRole(role); } return; } this.roleNames.addAll(roleNames); for (UserRole role : roles) { if (roleNames.contains(role.getRole())) { // we keep the role, and remove the name roleNames.remove(role.getRole()); } else { // this role has been removed removeList.add(role); } } for (UserRole role : removeList) { this.removeRole(role); } // now we need to add what's left in rNames for (String name : roleNames) { addedList.add(new UserRole(this, name)); roles.add(new UserRole(this, name)); } }
/** * TODO Consider making this cacheable * * @param authorities The required authorities * @return True if the user has all the required authorities */ public boolean hasAllAuthorities(Authority[] authorities) { Set<Authority> requiredAuthorities = Sets.newHashSet(authorities); Set<Authority> grantedAuthorities = Sets.newHashSet(); for (UserRole userRole : userRoles) { grantedAuthorities.addAll(userRole.getRole().getAuthorities()); } return grantedAuthorities.containsAll(requiredAuthorities); }
public User getUserWithRole(za.org.rfm.utils.Role role) { for (User user : getUsers()) { for (UserRole userRole : user.getUserRoles()) { if (userRole.getRole().getName().equalsIgnoreCase(role.name())) { return user; } } } return null; }
public void mapRoleMatrix(Map<String, String> allRoles) { userRoleMap = new HashMap<String, String>(); List<String> roleKeys = new ArrayList<String>(); for (UserRole role : this.roles) roleKeys.add(role.getRole()); for (String key : allRoles.keySet()) { if (roleKeys.contains(key)) { userRoleMap.put(key, allRoles.get(key)); } } }
/** * Remove role from group roles by name * * @param role * @return true if remove successful otherwise false */ public boolean removeRole(String roleName) { if (StringUtil.isEmpty(roleName)) return false; for (UserRole role : getRoles()) { if (roleName.equals(role.getRole())) { removeRole(role); return true; } } return false; }
public List<User> getUsersWithRole(za.org.rfm.utils.Role role) { List<User> userList = new ArrayList<User>(); for (User user : getUsers()) { for (UserRole userRole : user.getUserRoles()) { if (userRole.getRole().getName().equalsIgnoreCase(role.name())) { userList.add(user); } } } return userList; }
public void syncRoleNames() { roleNames = new ArrayList<String>(); for (UserRole role : roles) { roleNames.add(role.getRole()); } }