/** * Indicates whether this user can manage the given user. * * @param user the user to test. * @return true if the given user can be managed by this user, false if not. */ public boolean canManage( User user ) { if ( user == null || user.getGroups() == null ) { return false; } for ( UserGroup group : user.getGroups() ) { if ( canManage( group ) ) { return true; } } return false; }
if ( ! ( currentUser.canManage( ug ) || userGroupService.canAddOrRemoveMember( ug.getUid() ) ) )
@Override public boolean canAddOrUpdateUser( Collection<String> userGroups, User currentUser ) { if ( currentUser == null ) { return false; } boolean canAdd = currentUser.getUserCredentials().isAuthorized( UserGroup.AUTH_USER_ADD ); if ( canAdd ) { return true; } boolean canAddInGroup = currentUser.getUserCredentials().isAuthorized( UserGroup.AUTH_USER_ADD_IN_GROUP ); if ( !canAddInGroup ) { return false; } boolean canManageAnyGroup = false; for ( String uid : userGroups ) { UserGroup userGroup = userGroupService.getUserGroup( uid ); if ( currentUser.canManage( userGroup ) ) { canManageAnyGroup = true; break; } } return canManageAnyGroup; }