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) boolean
isAclEditor
(UserContext userContext) boolean
isMember
(UserContext userContext, String owner, String[] groups) boolean
isQueryManager
(UserContext userContext) boolean
isSchemaManager
(UserContext userContext) boolean
isSuperUser
(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:
isSuperUser
in interfaceIrisGroupProvider
-
isQueryManager
- Specified by:
isQueryManager
in interfaceIrisGroupProvider
-
isAclEditor
- Specified by:
isAclEditor
in interfaceIrisGroupProvider
-
isSchemaManager
- Specified by:
isSchemaManager
in interfaceIrisGroupProvider
-
getUserType
- Specified by:
getUserType
in interfaceIrisGroupProvider
-
isMember
- Specified by:
isMember
in interfaceIrisGroupProvider
-
getGroupsForUser
- Specified by:
getGroupsForUser
in interfaceIrisGroupProvider
-
getUsersForGroup
- Specified by:
getUsersForGroup
in interfaceIrisGroupProvider
-
getUsersForGroupCached
-
getUsersForGroupSet
-
getAllGroups
- Specified by:
getAllGroups
in interfaceIrisGroupProvider
-
getAllUsers
- Specified by:
getAllUsers
in interfaceIrisGroupProvider
-
getRunAsUserMap
- Specified by:
getRunAsUserMap
in interfaceIrisGroupProvider
-
getRunAsUser
- Specified by:
getRunAsUser
in interfaceIrisGroupProvider
-