Class CachingGroupProvider
java.lang.Object
com.illumon.iris.db.v2.permissions.CachingGroupProvider
- All Implemented Interfaces:
IrisGroupProvider
A version of a group provider that delegates calls to an inner grouping provider; and saves the results.
This is intended for use when you will be performing many operations; and do not want to query the underlying
group provider's database for each one. You should only use an instance of this for a single top-level operation;
otherwise permission changes will not be effective.
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.illumon.iris.db.v2.permissions.IrisGroupProvider
IrisGroupProvider.UserType -
Field Summary
Fields inherited from interface com.illumon.iris.db.v2.permissions.IrisGroupProvider
FULL_ACCESS_GROUP, GROUP_ALLUSERS, IRIS_ACLEDITORS, IRIS_DATAMANAGERS, IRIS_QUERYMANAGERS, IRIS_SCHEMAMANAGERS, IRIS_SUPERUSERS, NON_INTERACTIVE_GROUP, QUERY_VIEW_ONLY_GROUP -
Constructor Summary
ConstructorsConstructorDescriptionCachingGroupProvider(IrisGroupProvider groupProvider) CachingGroupProvider(IrisGroupProvider groupProvider, boolean acrossUsers) Create a caching group provider. -
Method Summary
Modifier and TypeMethodDescriptionString[]String[]String[]getGroupsForUser(UserContext userContext) getRunAsUser(UserContext userContext) String[]getUsersForGroup(String group) getUsersForGroupCached(String group) getUsersForGroupSet(String group) getUserType(UserContext userContext) booleanisAclEditor(UserContext userContext) booleanisMember(UserContext userContext, String owner, String[] groups) booleanisQueryManager(UserContext userContext) booleanisSchemaManager(UserContext userContext) booleanisSuperUser(UserContext userContext)
-
Constructor Details
-
CachingGroupProvider
-
CachingGroupProvider
Create a caching group provider.- Parameters:
groupProvider- the underlying group provider.acrossUsers- if true, then optimize for performing fewer operations when different users are queried. Otherwise, the underlying implementation may be more efficient for many operations on a single user.
-
-
Method Details
-
isSuperUser
- Specified by:
isSuperUserin interfaceIrisGroupProvider
-
isQueryManager
- Specified by:
isQueryManagerin interfaceIrisGroupProvider
-
isAclEditor
- Specified by:
isAclEditorin interfaceIrisGroupProvider
-
isSchemaManager
- Specified by:
isSchemaManagerin interfaceIrisGroupProvider
-
getUserType
- Specified by:
getUserTypein interfaceIrisGroupProvider
-
isMember
- Specified by:
isMemberin interfaceIrisGroupProvider
-
getGroupsForUser
- Specified by:
getGroupsForUserin interfaceIrisGroupProvider
-
getUsersForGroup
- Specified by:
getUsersForGroupin interfaceIrisGroupProvider
-
getUsersForGroupCached
-
getUsersForGroupSet
-
getAllGroups
- Specified by:
getAllGroupsin interfaceIrisGroupProvider
-
getAllUsers
- Specified by:
getAllUsersin interfaceIrisGroupProvider
-
getRunAsUserMap
- Specified by:
getRunAsUserMapin interfaceIrisGroupProvider
-
getRunAsUser
- Specified by:
getRunAsUserin interfaceIrisGroupProvider
-