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_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(io.deephaven.enterprise.auth.UserContext userContext) getRunAsUser(io.deephaven.enterprise.auth.UserContext userContext) String[]getUsersForGroup(String group) getUsersForGroupCached(String group) getUsersForGroupSet(String group) getUserType(io.deephaven.enterprise.auth.UserContext userContext) booleanisAclEditor(io.deephaven.enterprise.auth.UserContext userContext) booleanbooleanisQueryManager(io.deephaven.enterprise.auth.UserContext userContext) booleanisSchemaManager(io.deephaven.enterprise.auth.UserContext userContext) booleanisSuperUser(io.deephaven.enterprise.auth.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
public boolean isSuperUser(io.deephaven.enterprise.auth.UserContext userContext) - Specified by:
isSuperUserin interfaceIrisGroupProvider
-
isQueryManager
public boolean isQueryManager(io.deephaven.enterprise.auth.UserContext userContext) - Specified by:
isQueryManagerin interfaceIrisGroupProvider
-
isAclEditor
public boolean isAclEditor(io.deephaven.enterprise.auth.UserContext userContext) - Specified by:
isAclEditorin interfaceIrisGroupProvider
-
isSchemaManager
public boolean isSchemaManager(io.deephaven.enterprise.auth.UserContext userContext) - Specified by:
isSchemaManagerin interfaceIrisGroupProvider
-
getUserType
- Specified by:
getUserTypein interfaceIrisGroupProvider
-
isMember
public boolean isMember(io.deephaven.enterprise.auth.UserContext userContext, String owner, String[] groups) - 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
-