Package org.keycloak.models.map.group
Class MapGroupProvider
- java.lang.Object
- 
- org.keycloak.models.map.group.MapGroupProvider
 
- 
- All Implemented Interfaces:
- GroupProvider,- Provider,- GroupLookupProvider
 
 public class MapGroupProvider extends Object implements GroupProvider 
- 
- 
Constructor SummaryConstructors Constructor Description MapGroupProvider(KeycloakSession session, MapStorage<MapGroupEntity,GroupModel> groupStore)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTopLevelGroup(RealmModel realm, GroupModel subGroup)Removes parent group for the given group in the given realm.voidclose()GroupModelcreateGroup(RealmModel realm, String id, String name, GroupModel toParent)Creates a new group with the given name, id, name and parent to the given realm.GroupModelgetGroupById(RealmModel realm, String id)Returns a group from the given realm with the corresponding idStream<GroupModel>getGroupsByRoleStream(RealmModel realm, RoleModel role, Integer firstResult, Integer maxResults)Returns groups with the given role in the given realm.LonggetGroupsCount(RealmModel realm, Boolean onlyTopGroups)Returns a number of groups/top level groups (i.e.LonggetGroupsCountByNameContaining(RealmModel realm, String search)Returns the number of top level groups containing groups with the given string in name for the given realm.Stream<GroupModel>getGroupsStream(RealmModel realm)Returns groups for the given realm.Stream<GroupModel>getGroupsStream(RealmModel realm, Stream<String> ids, String search, Integer first, Integer max)Returns a paginated stream of groups with given ids and given search value in group names.Stream<GroupModel>getTopLevelGroupsStream(RealmModel realm)Returns all top level groups (i.e.Stream<GroupModel>getTopLevelGroupsStream(RealmModel realm, Integer firstResult, Integer maxResults)Returns top level groups (i.e.voidmoveGroup(RealmModel realm, GroupModel group, GroupModel toParent)This method is used for moving groups in group structure, for example: making an existing child group child group of some other group, setting a top level group (i.e.voidpreRemove(RealmModel realm)voidpreRemove(RealmModel realm, RoleModel role)booleanremoveGroup(RealmModel realm, GroupModel group)Removes the given group for the given realm.Stream<GroupModel>searchForGroupByNameStream(RealmModel realm, String search, Boolean exact, Integer firstResult, Integer maxResults)Returns the group hierarchy with the given string in name for the given realm.Stream<GroupModel>searchGroupsByAttributes(RealmModel realm, Map<String,String> attributes, Integer firstResult, Integer maxResults)Returns the groups filtered by attribute names and attribute values for the given realm.- 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface org.keycloak.storage.group.GroupLookupProvidersearchForGroupByNameStream
 - 
Methods inherited from interface org.keycloak.models.GroupProvidercreateGroup, createGroup, createGroup, getGroupsCount, getGroupsStream, getGroupsStream
 
- 
 
- 
- 
- 
Constructor Detail- 
MapGroupProviderpublic MapGroupProvider(KeycloakSession session, MapStorage<MapGroupEntity,GroupModel> groupStore) 
 
- 
 - 
Method Detail- 
getGroupByIdpublic GroupModel getGroupById(RealmModel realm, String id) Description copied from interface:GroupLookupProviderReturns a group from the given realm with the corresponding id- Specified by:
- getGroupByIdin interface- GroupLookupProvider
- Parameters:
- realm- Realm.
- id- Id.
- Returns:
- GroupModel with the corresponding id.
 
 - 
getGroupsStreampublic Stream<GroupModel> getGroupsStream(RealmModel realm) Description copied from interface:GroupProviderReturns groups for the given realm.- Specified by:
- getGroupsStreamin interface- GroupProvider
- Parameters:
- realm- Realm.
- Returns:
- Stream of groups in the Realm.
 
 - 
getGroupsStreampublic Stream<GroupModel> getGroupsStream(RealmModel realm, Stream<String> ids, String search, Integer first, Integer max) Description copied from interface:GroupProviderReturns a paginated stream of groups with given ids and given search value in group names.- Specified by:
- getGroupsStreamin interface- GroupProvider
- Parameters:
- realm- Realm.
- ids- Stream of ids.
- search- Case insensitive string which will be searched for. Ignored if null.
- first- Index of the first result to return. Ignored if negative or- null.
- max- Maximum number of results to return. Ignored if negative or- null.
- Returns:
- Stream of desired groups. Never returns null.
 
 - 
getGroupsCountpublic Long getGroupsCount(RealmModel realm, Boolean onlyTopGroups) Description copied from interface:GroupProviderReturns a number of groups/top level groups (i.e. groups without parent group) for the given realm.- Specified by:
- getGroupsCountin interface- GroupProvider
- Parameters:
- realm- Realm.
- onlyTopGroups- When true the function returns a count of top level groups only.
- Returns:
- Number of groups/top level groups.
 
 - 
getGroupsCountByNameContainingpublic Long getGroupsCountByNameContaining(RealmModel realm, String search) Description copied from interface:GroupProviderReturns the number of top level groups containing groups with the given string in name for the given realm.- Specified by:
- getGroupsCountByNameContainingin interface- GroupProvider
- Parameters:
- realm- Realm.
- search- Case insensitive string which will be searched for.
- Returns:
- Number of groups with the given string in its name.
 
 - 
getGroupsByRoleStreampublic Stream<GroupModel> getGroupsByRoleStream(RealmModel realm, RoleModel role, Integer firstResult, Integer maxResults) Description copied from interface:GroupProviderReturns groups with the given role in the given realm.- Specified by:
- getGroupsByRoleStreamin interface- GroupProvider
- Parameters:
- realm- Realm.
- role- Role.
- firstResult- First result to return. Ignored if negative or- null.
- maxResults- Maximum number of results to return. Ignored if negative or- null.
- Returns:
- Stream of groups with the given role. Never returns null.
 
 - 
getTopLevelGroupsStreampublic Stream<GroupModel> getTopLevelGroupsStream(RealmModel realm) Description copied from interface:GroupProviderReturns all top level groups (i.e. groups without parent group) for the given realm.- Specified by:
- getTopLevelGroupsStreamin interface- GroupProvider
- Parameters:
- realm- Realm.
- Returns:
- Stream of all top level groups in the realm. Never returns null.
 
 - 
getTopLevelGroupsStreampublic Stream<GroupModel> getTopLevelGroupsStream(RealmModel realm, Integer firstResult, Integer maxResults) Description copied from interface:GroupProviderReturns top level groups (i.e. groups without parent group) for the given realm.- Specified by:
- getTopLevelGroupsStreamin interface- GroupProvider
- Parameters:
- realm- Realm.
- firstResult- First result to return. Ignored if negative or- null.
- maxResults- Maximum number of results to return. Ignored if negative or- null.
- Returns:
- Stream of top level groups in the realm. Never returns null.
 
 - 
searchForGroupByNameStreampublic Stream<GroupModel> searchForGroupByNameStream(RealmModel realm, String search, Boolean exact, Integer firstResult, Integer maxResults) Description copied from interface:GroupLookupProviderReturns the group hierarchy with the given string in name for the given realm. For a matching group node the parent group is fetched by id (with all children) and added to the result stream. This is done until the group node does not have a parent (root group)- Specified by:
- searchForGroupByNameStreamin interface- GroupLookupProvider
- Parameters:
- realm- Realm.
- search- Case sensitive searched string.
- exact- Boolean which defines wheather search param should be matched exactly.
- firstResult- First result to return. Ignored if negative or- null.
- maxResults- Maximum number of results to return. Ignored if negative or- null.
- Returns:
- Stream of root groups that have the given string in their name themself or a group in their child-collection has.
 The returned hierarchy contains siblings that do not necessarily have a matching name. Never returns null.
 
 - 
searchGroupsByAttributespublic Stream<GroupModel> searchGroupsByAttributes(RealmModel realm, Map<String,String> attributes, Integer firstResult, Integer maxResults) Description copied from interface:GroupLookupProviderReturns the groups filtered by attribute names and attribute values for the given realm.- Specified by:
- searchGroupsByAttributesin interface- GroupLookupProvider
- Parameters:
- realm- Realm.
- attributes- name-value pairs that are compared to group attributes.
- firstResult- First result to return. Ignored if negative or- null.
- maxResults- Maximum number of results to return. Ignored if negative or- null.
- Returns:
- Stream of groups with attributes matching all searched attributes. Never returns null.
 
 - 
createGrouppublic GroupModel createGroup(RealmModel realm, String id, String name, GroupModel toParent) Description copied from interface:GroupProviderCreates a new group with the given name, id, name and parent to the given realm.- Specified by:
- createGroupin interface- GroupProvider
- Parameters:
- realm- Realm.
- id- Id, will be generated if- null.
- name- Name.
- toParent- Parent group, or- nullif the group is top level group
- Returns:
- Model of the created group
 
 - 
removeGrouppublic boolean removeGroup(RealmModel realm, GroupModel group) Description copied from interface:GroupProviderRemoves the given group for the given realm.- Specified by:
- removeGroupin interface- GroupProvider
- Parameters:
- realm- Realm.
- group- Group.
- Returns:
- true if the group was removed, false if group doesn't exist or doesn't belong to the given realm
 
 - 
moveGrouppublic void moveGroup(RealmModel realm, GroupModel group, GroupModel toParent) Description copied from interface:GroupProviderThis method is used for moving groups in group structure, for example:- making an existing child group child group of some other group,
- setting a top level group (i.e. group without parent group) child of some group,
- making a child group top level group (i.e. removing its parent group).
 - Specified by:
- moveGroupin interface- GroupProvider
- Parameters:
- realm- Realm owning this group.
- group- Group to update.
- toParent- New parent group, or- nullif we are moving the group to top level group.
 
 - 
addTopLevelGrouppublic void addTopLevelGroup(RealmModel realm, GroupModel subGroup) Description copied from interface:GroupProviderRemoves parent group for the given group in the given realm.- Specified by:
- addTopLevelGroupin interface- GroupProvider
- Parameters:
- realm- Realm.
- subGroup- Group.
 
 - 
preRemovepublic void preRemove(RealmModel realm, RoleModel role) 
 - 
preRemovepublic void preRemove(RealmModel realm) 
 
- 
 
-