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) boolean
isAclEditor
(io.deephaven.enterprise.auth.UserContext userContext) boolean
boolean
isQueryManager
(io.deephaven.enterprise.auth.UserContext userContext) boolean
isSchemaManager
(io.deephaven.enterprise.auth.UserContext userContext) boolean
isSuperUser
(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:
isSuperUser
in interfaceIrisGroupProvider
-
isQueryManager
public boolean isQueryManager(io.deephaven.enterprise.auth.UserContext userContext) - Specified by:
isQueryManager
in interfaceIrisGroupProvider
-
isAclEditor
public boolean isAclEditor(io.deephaven.enterprise.auth.UserContext userContext) - Specified by:
isAclEditor
in interfaceIrisGroupProvider
-
isSchemaManager
public boolean isSchemaManager(io.deephaven.enterprise.auth.UserContext userContext) - Specified by:
isSchemaManager
in interfaceIrisGroupProvider
-
getUserType
- Specified by:
getUserType
in interfaceIrisGroupProvider
-
isMember
public boolean isMember(io.deephaven.enterprise.auth.UserContext userContext, String owner, String[] groups) - 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
-