public void removeUser( User user ) { members.remove( user ); user.getGroups().remove( this ); }
public void addUser( User user ) { members.add( user ); user.getGroups().add( this ); }
/** * 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; }
/** * Indicates whether this user is managed by the given user. * * @param user the user to test. * @return true if the given user is managed by this user, false if not. */ public boolean isManagedBy( User user ) { if ( user == null || user.getGroups() == null ) { return false; } for ( UserGroup group : user.getGroups() ) { if ( isManagedBy( group ) ) { return true; } } return false; }
@Override public void deleteUser( User user ) { Set<UserGroup> userGroups = user.getGroups(); for ( UserGroup group : userGroups ) { group.getMembers().remove( user ); idObjectManager.updateNoAcl( group ); } }
@Override public void deleteUserGroup( UserGroup group ) { for ( User user : group.getMembers() ) { user.getGroups().remove( group ); idObjectManager.updateNoAcl( user ); } }
private String getCategoryOptionSharingForUser( User user ) { List<Integer> userGroupIds = getIdentifiers( user.getGroups() ); String sql = " left join ( "; sql += "select categoryoptioncomboid, count(categoryoptioncomboid) as option_size from categoryoptioncombos_categoryoptions group by categoryoptioncomboid) " + "as cocount on coc.categoryoptioncomboid = cocount.categoryoptioncomboid " + "left join (" + "select deco.categoryoptionid as deco_id, deco.uid as deco_uid, deco.publicaccess AS deco_publicaccess, " + "couga.usergroupaccessid as uga_id, coua.useraccessid as ua_id, uga.access as uga_access, uga.usergroupid AS usrgrp_id, " + "ua.access as ua_access, ua.userid as usr_id from dataelementcategoryoption deco " + "left join dataelementcategoryoptionusergroupaccesses couga on deco.categoryoptionid = couga.categoryoptionid " + "left join dataelementcategoryoptionuseraccesses coua on deco.categoryoptionid = coua.categoryoptionid " + "left join usergroupaccess uga on couga.usergroupaccessid = uga.usergroupaccessid " + "left join useraccess ua on coua.useraccessid = ua.useraccessid " + " where ua.userid=" + user.getId(); if ( userGroupIds != null && !userGroupIds.isEmpty() ) { sql += " or uga.usergroupid in (" + getCommaDelimitedString( userGroupIds ) + ") "; } sql += " ) as decoa on cocco.categoryoptionid = decoa.deco_id "; return sql; }
@Override public void updateUserGroups( User user, Collection<String> uids, User currentUser ) { Collection<UserGroup> updates = getUserGroupsByUid( uids ); for ( UserGroup userGroup : new HashSet<>( user.getGroups() ) ) { if ( !updates.contains( userGroup ) && canAddOrRemoveMember( userGroup.getUid(), currentUser ) ) { userGroup.removeUser( user ); } } for ( UserGroup userGroup : updates ) { if ( canAddOrRemoveMember( userGroup.getUid(), currentUser ) ) { userGroup.addUser( user ); userGroupStore.updateNoAcl( userGroup ); } } }
user.getGroups().forEach( ug ->