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, mapEnabledStorageProvidersWithTimeout
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createGroup, createGroup, createGroup, getGroupById, getGroups, getGroupsByRole, getGroupsCount, getGroupsStream, getGroupsStream, getTopLevelGroups, getTopLevelGroups
searchForGroupByName
public GroupStorageManager(KeycloakSession session)
public GroupModel getGroupById(RealmModel realm, String id)
GroupLookupProvider
getGroupById
in interface GroupLookupProvider
realm
- 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 GroupLookupProvider
realm
- 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)
GroupProvider
getGroupsStream
in interface GroupProvider
realm
- Realm.public Stream<GroupModel> getGroupsStream(RealmModel realm, Stream<String> ids, String search, Integer first, Integer max)
GroupProvider
getGroupsStream
in interface GroupProvider
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
.null
.public Long getGroupsCount(RealmModel realm, Boolean onlyTopGroups)
GroupProvider
getGroupsCount
in interface GroupProvider
realm
- Realm.onlyTopGroups
- When true the function returns a count of top level groups only.public Long getGroupsCountByNameContaining(RealmModel realm, String search)
GroupProvider
getGroupsCountByNameContaining
in interface GroupProvider
realm
- Realm.search
- Case insensitive string which will be searched for.public Stream<GroupModel> getGroupsByRoleStream(RealmModel realm, RoleModel role, Integer firstResult, Integer maxResults)
GroupProvider
getGroupsByRoleStream
in interface GroupProvider
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
.null
.public Stream<GroupModel> getTopLevelGroupsStream(RealmModel realm)
GroupProvider
getTopLevelGroupsStream
in interface GroupProvider
realm
- Realm.null
.public Stream<GroupModel> getTopLevelGroupsStream(RealmModel realm, Integer firstResult, Integer maxResults)
GroupProvider
getTopLevelGroupsStream
in interface GroupProvider
realm
- 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)
GroupProvider
createGroup
in interface GroupProvider
realm
- 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)
GroupProvider
removeGroup
in interface GroupProvider
realm
- Realm.group
- Group.public void moveGroup(RealmModel realm, GroupModel group, GroupModel toParent)
GroupProvider
moveGroup
in interface GroupProvider
realm
- 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)
GroupProvider
addTopLevelGroup
in interface GroupProvider
realm
- Realm.subGroup
- Group.Copyright © 2021 JBoss by Red Hat. All rights reserved.