public class GroupStorageManager extends AbstractStorageManager<GroupStorageProvider,GroupStorageProviderModel> implements GroupProvider
session| Constructor and Description |
|---|
GroupStorageManager(KeycloakSession session) |
| Modifier and Type | Method and Description |
|---|---|
void |
addTopLevelGroup(RealmModel realm,
GroupModel subGroup)
Removes parent group for the given group in the given realm.
|
void |
close() |
GroupModel |
createGroup(RealmModel realm,
String id,
String name,
GroupModel toParent)
Creates a new group with the given name, id, name and parent to the given realm.
|
GroupModel |
getGroupById(RealmModel realm,
String id)
Returns a group from the given realm with the corresponding id
|
Stream<GroupModel> |
getGroupsByRoleStream(RealmModel realm,
RoleModel role,
Integer firstResult,
Integer maxResults)
Returns groups with the given role in the given realm.
|
Long |
getGroupsCount(RealmModel realm,
Boolean onlyTopGroups)
Returns a number of groups/top level groups (i.e.
|
Long |
getGroupsCountByNameContaining(RealmModel realm,
String search)
Returns number of 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.
|
void |
moveGroup(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.
|
boolean |
removeGroup(RealmModel realm,
GroupModel group)
Removes the given group for the given realm.
|
Stream<GroupModel> |
searchForGroupByNameStream(RealmModel realm,
String search,
Integer firstResult,
Integer maxResults)
Obtaining groups from an external client storage is time-bounded.
|
consumeEnabledStorageProvidersWithTimeout, flatMapEnabledStorageProvidersWithTimeout, getEnabledStorageProviders, getStorageProviderFactory, getStorageProviderInstance, getStorageProviderInstance, getStorageProviderInstance, getStorageProviderInstance, getStorageProviderModel, getStorageProviderModels, getStorageProviderTimeout, mapEnabledStorageProvidersWithTimeoutclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcreateGroup, createGroup, createGroup, getGroupById, getGroups, getGroupsByRole, getGroupsCount, getGroupsStream, getGroupsStream, getTopLevelGroups, getTopLevelGroupssearchForGroupByNamepublic GroupStorageManager(KeycloakSession session)
public GroupModel getGroupById(RealmModel realm, String id)
GroupLookupProvidergetGroupById in interface GroupLookupProviderrealm - Realm.id - Id.public Stream<GroupModel> searchForGroupByNameStream(RealmModel realm, String search, Integer firstResult, Integer maxResults)
DefaultKeycloakSessionFactory.getClientStorageProviderTimeout() property is used.
Default value is 3000 milliseconds and it's configurable.
See DefaultKeycloakSessionFactory for details.searchForGroupByNameStream in interface GroupLookupProviderrealm - Realm.search - Case sensitive searched string.firstResult - First result to return. Ignored if negative or null.maxResults - Maximum number of results to return. Ignored if negative or null.null.public Stream<GroupModel> getGroupsStream(RealmModel realm)
GroupProvidergetGroupsStream in interface GroupProviderrealm - Realm.public Stream<GroupModel> getGroupsStream(RealmModel realm, Stream<String> ids, String search, Integer first, Integer max)
GroupProvidergetGroupsStream in interface GroupProviderrealm - 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.null.public Long getGroupsCount(RealmModel realm, Boolean onlyTopGroups)
GroupProvidergetGroupsCount in interface GroupProviderrealm - Realm.onlyTopGroups - When true the function returns a count of top level groups only.public Long getGroupsCountByNameContaining(RealmModel realm, String search)
GroupProvidergetGroupsCountByNameContaining in interface GroupProviderrealm - Realm.search - Case insensitive string which will be searched for.public Stream<GroupModel> getGroupsByRoleStream(RealmModel realm, RoleModel role, Integer firstResult, Integer maxResults)
GroupProvidergetGroupsByRoleStream in interface GroupProviderrealm - 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.null.public Stream<GroupModel> getTopLevelGroupsStream(RealmModel realm)
GroupProvidergetTopLevelGroupsStream in interface GroupProviderrealm - Realm.null.public Stream<GroupModel> getTopLevelGroupsStream(RealmModel realm, Integer firstResult, Integer maxResults)
GroupProvidergetTopLevelGroupsStream in interface GroupProviderrealm - Realm.firstResult - First result to return. Ignored if negative or null.maxResults - Maximum number of results to return. Ignored if negative or null.null.public GroupModel createGroup(RealmModel realm, String id, String name, GroupModel toParent)
GroupProvidercreateGroup in interface GroupProviderrealm - Realm.id - Id, will be generated if null.name - Name.toParent - Parent group, or null if the group is top level grouppublic boolean removeGroup(RealmModel realm, GroupModel group)
GroupProviderremoveGroup in interface GroupProviderrealm - Realm.group - Group.public void moveGroup(RealmModel realm, GroupModel group, GroupModel toParent)
GroupProvidermoveGroup in interface GroupProviderrealm - Realm owning this group.group - Group to update.toParent - New parent group, or null if we are moving the group to top level group.public void addTopLevelGroup(RealmModel realm, GroupModel subGroup)
GroupProvideraddTopLevelGroup in interface GroupProviderrealm - Realm.subGroup - Group.Copyright © 2021 JBoss by Red Hat. All rights reserved.