userPermissions.addAll(permissions.getGroupPermissions(group)); userPermissions.addAll(permissions.getGroupPermissions(group));
public static boolean hasPermissions(User user, List<String> methods, Permissions permissions) { boolean canAct = true; for (String method : methods) { canAct &= user.hasRole(RodaCoreFactory.getRodaConfigurationAsString("core.roles." + method)); String permissionKey = RodaCoreFactory.getRodaConfigurationAsString("core.permissions." + method); if (canAct && permissions != null && permissionKey != null) { PermissionType permissionType = PermissionType.valueOf(permissionKey); if (permissionType != null) { if (permissions.getUserPermissions(user.getName()).contains(permissionType)) { canAct = true; } else { boolean containGroup = false; for (String group : user.getGroups()) { if (permissions.getGroupPermissions(group).contains(permissionType)) { containGroup = true; break; } } canAct = containGroup; } } } } return canAct; } }
public static Permissions grantAllPermissions(String username, Permissions permissions, Permissions parentPermissions) throws GenericException, NotFoundException, RequestNotValidException, AuthorizationDeniedException { Permissions grantedPermissions = grantPermissionToUser(username, permissions); for (String name : parentPermissions.getUsernames()) { grantedPermissions.setUserPermissions(name, parentPermissions.getUserPermissions(name)); } for (String name : parentPermissions.getGroupnames()) { grantedPermissions.setGroupPermissions(name, parentPermissions.getGroupPermissions(name)); } return grantedPermissions; }
private Permissions addParentPermissions(Permissions permissions, String parentId) throws RequestNotValidException, NotFoundException, GenericException, AuthorizationDeniedException { if (parentId != null) { AIP parentAIP = this.retrieveAIP(parentId); Set<String> parentGroupnames = parentAIP.getPermissions().getGroupnames(); Set<String> parentUsernames = parentAIP.getPermissions().getUsernames(); Set<String> groupnames = permissions.getGroupnames(); Set<String> usernames = permissions.getUsernames(); for (String user : parentUsernames) { if (!usernames.contains(user)) { permissions.setUserPermissions(user, parentAIP.getPermissions().getUserPermissions(user)); } } for (String group : parentGroupnames) { if (!groupnames.contains(group)) { permissions.setGroupPermissions(group, parentAIP.getPermissions().getGroupPermissions(group)); } } } return permissions; }