public class MapGroupProvider extends Object implements GroupProvider
Constructor and Description |
---|
MapGroupProvider(KeycloakSession session,
MapStorage<MapGroupEntity,GroupModel> groupStore) |
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.
|
void |
preRemove(RealmModel realm,
RoleModel role) |
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)
Returns the group hierarchy with the given string in name for the given realm.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createGroup, createGroup, createGroup, getGroupById, getGroups, getGroupsByRole, getGroupsCount, getGroupsStream, getGroupsStream, getTopLevelGroups, getTopLevelGroups
searchForGroupByName
public MapGroupProvider(KeycloakSession session, MapStorage<MapGroupEntity,GroupModel> groupStore)
public GroupModel getGroupById(RealmModel realm, String id)
GroupLookupProvider
getGroupById
in interface GroupLookupProvider
realm
- Realm.id
- Id.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 Stream<GroupModel> searchForGroupByNameStream(RealmModel realm, String search, Integer firstResult, Integer maxResults)
GroupLookupProvider
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 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.public void preRemove(RealmModel realm, RoleModel role)
Copyright © 2021 JBoss by Red Hat. All rights reserved.