Class GroupAdapter
- java.lang.Object
-
- org.keycloak.models.cache.infinispan.GroupAdapter
-
- All Implemented Interfaces:
GroupModel,RoleMapperModel
public class GroupAdapter extends Object implements GroupModel
- Version:
- $Revision: 1 $
- Author:
- Bill Burke
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.keycloak.models.GroupModel
GroupModel.GroupPathChangeEvent, GroupModel.GroupRemovedEvent, GroupModel.SearchableFields, GroupModel.Streams
-
-
Field Summary
Fields Modifier and Type Field Description protected CachedGroupcachedprotected RealmCacheSessioncacheSessionprotected booleaninvalidatedprotected KeycloakSessionkeycloakSessionprotected RealmModelrealmprotected GroupModelupdated-
Fields inherited from interface org.keycloak.models.GroupModel
COMPARE_BY_NAME
-
-
Constructor Summary
Constructors Constructor Description GroupAdapter(CachedGroup cached, RealmCacheSession cacheSession, KeycloakSession keycloakSession, RealmModel realm)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddChild(GroupModel subGroup)Automatically calls setParent() on the subGroupvoiddeleteRoleMapping(RoleModel role)Removes the given role mapping from this object.booleanequals(Object o)Map<String,List<String>>getAttributes()Stream<String>getAttributeStream(String name)Returns group attributes that match the given name as a stream.Stream<RoleModel>getClientRoleMappingsStream(ClientModel app)Returns stream of client roles that are directly set to this object for the given client.protected voidgetDelegateForUpdate()StringgetFirstAttribute(String name)StringgetId()StringgetName()GroupModelgetParent()StringgetParentId()Stream<RoleModel>getRealmRoleMappingsStream()Returns stream of realm roles that are directly set to this object.Stream<RoleModel>getRoleMappingsStream()Returns stream of all role (both realm all client) that are directly set to this object.Stream<GroupModel>getSubGroupsStream()Returns all sub groups for the parent group as a stream.voidgrantRole(RoleModel role)Grants the given role to this object.booleanhasDirectRole(RoleModel role)Returnstrue, if this object is directly assigned the given role.inthashCode()booleanhasRole(RoleModel role)Returnstrueif this object is directly or indirectly assigned the given role,falseotherwise.voidinvalidate()protected booleanisUpdated()voidremoveAttribute(String name)voidremoveChild(GroupModel subGroup)Automatically calls setParent() on the subGroupvoidsetAttribute(String name, List<String> values)voidsetName(String name)voidsetParent(GroupModel group)You must also call addChild on the parent group, addChild on RealmModel if there is no parent groupvoidsetSingleAttribute(String name, String value)Set single value of specified attribute.
-
-
-
Field Detail
-
cached
protected final CachedGroup cached
-
cacheSession
protected final RealmCacheSession cacheSession
-
keycloakSession
protected final KeycloakSession keycloakSession
-
realm
protected final RealmModel realm
-
updated
protected volatile GroupModel updated
-
invalidated
protected volatile boolean invalidated
-
-
Constructor Detail
-
GroupAdapter
public GroupAdapter(CachedGroup cached, RealmCacheSession cacheSession, KeycloakSession keycloakSession, RealmModel realm)
-
-
Method Detail
-
getDelegateForUpdate
protected void getDelegateForUpdate()
-
invalidate
public void invalidate()
-
isUpdated
protected boolean isUpdated()
-
getId
public String getId()
- Specified by:
getIdin interfaceGroupModel
-
getName
public String getName()
- Specified by:
getNamein interfaceGroupModel
-
setName
public void setName(String name)
- Specified by:
setNamein interfaceGroupModel
-
setSingleAttribute
public void setSingleAttribute(String name, String value)
Description copied from interface:GroupModelSet single value of specified attribute. Remove all other existing values- Specified by:
setSingleAttributein interfaceGroupModel
-
setAttribute
public void setAttribute(String name, List<String> values)
- Specified by:
setAttributein interfaceGroupModel
-
removeAttribute
public void removeAttribute(String name)
- Specified by:
removeAttributein interfaceGroupModel
-
getFirstAttribute
public String getFirstAttribute(String name)
- Specified by:
getFirstAttributein interfaceGroupModel- Returns:
- null if there is not any value of specified attribute or first value otherwise. Don't throw exception if there are more values of the attribute
-
getAttributeStream
public Stream<String> getAttributeStream(String name)
Description copied from interface:GroupModelReturns group attributes that match the given name as a stream.- Specified by:
getAttributeStreamin interfaceGroupModel- Parameters:
name-StringName of the attribute to be used as a filter.- Returns:
- Stream of all attribute values or empty stream if there are not any values. Never return
null.
-
getAttributes
public Map<String,List<String>> getAttributes()
- Specified by:
getAttributesin interfaceGroupModel
-
getRealmRoleMappingsStream
public Stream<RoleModel> getRealmRoleMappingsStream()
Description copied from interface:RoleMapperModelReturns stream of realm roles that are directly set to this object.- Specified by:
getRealmRoleMappingsStreamin interfaceRoleMapperModel- Returns:
- Stream of
RoleModel. Never returnsnull.
-
getClientRoleMappingsStream
public Stream<RoleModel> getClientRoleMappingsStream(ClientModel app)
Description copied from interface:RoleMapperModelReturns stream of client roles that are directly set to this object for the given client.- Specified by:
getClientRoleMappingsStreamin interfaceRoleMapperModel- Parameters:
app-ClientModelClient to get the roles for.- Returns:
- Stream of
RoleModel. Never returnsnull.
-
hasDirectRole
public boolean hasDirectRole(RoleModel role)
Description copied from interface:RoleMapperModelReturnstrue, if this object is directly assigned the given role.- Specified by:
hasDirectRolein interfaceRoleMapperModel- Parameters:
role- the role- Returns:
- see description
- See Also:
if you want to check whether this object is directly or indirectly assigned to a role
-
hasRole
public boolean hasRole(RoleModel role)
Description copied from interface:RoleMapperModelReturnstrueif this object is directly or indirectly assigned the given role,falseotherwise.For example,
trueis returned for hasRole(R) if:- R is directly assigned to this object
- R is indirectly assigned to this object via composites
- R is not assigned to this object but this object belongs to a group G which is assigned the role R
- R is not assigned to this object but this object belongs to a group G, and G belongs to group H which is assigned the role R
- Specified by:
hasRolein interfaceRoleMapperModel- Returns:
- see description
- See Also:
if you want to check if this object is directly assigned to a role
-
grantRole
public void grantRole(RoleModel role)
Description copied from interface:RoleMapperModelGrants the given role to this object.- Specified by:
grantRolein interfaceRoleMapperModel
-
getRoleMappingsStream
public Stream<RoleModel> getRoleMappingsStream()
Description copied from interface:RoleMapperModelReturns stream of all role (both realm all client) that are directly set to this object.- Specified by:
getRoleMappingsStreamin interfaceRoleMapperModel- Returns:
- Stream of
RoleModel. Never returnsnull.
-
deleteRoleMapping
public void deleteRoleMapping(RoleModel role)
Description copied from interface:RoleMapperModelRemoves the given role mapping from this object.- Specified by:
deleteRoleMappingin interfaceRoleMapperModel- Parameters:
role- Role to remove
-
getParent
public GroupModel getParent()
- Specified by:
getParentin interfaceGroupModel
-
getParentId
public String getParentId()
- Specified by:
getParentIdin interfaceGroupModel
-
getSubGroupsStream
public Stream<GroupModel> getSubGroupsStream()
Description copied from interface:GroupModelReturns all sub groups for the parent group as a stream.- Specified by:
getSubGroupsStreamin interfaceGroupModel- Returns:
- Stream of
GroupModel. Never returnsnull.
-
setParent
public void setParent(GroupModel group)
Description copied from interface:GroupModelYou must also call addChild on the parent group, addChild on RealmModel if there is no parent group- Specified by:
setParentin interfaceGroupModel
-
addChild
public void addChild(GroupModel subGroup)
Description copied from interface:GroupModelAutomatically calls setParent() on the subGroup- Specified by:
addChildin interfaceGroupModel
-
removeChild
public void removeChild(GroupModel subGroup)
Description copied from interface:GroupModelAutomatically calls setParent() on the subGroup- Specified by:
removeChildin interfaceGroupModel
-
-