Class CachingGroupProvider
java.lang.Object
com.illumon.iris.db.v2.permissions.CachingGroupProvider
- All Implemented Interfaces:
IrisGroupProvider
public class CachingGroupProvider extends Object implements 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, IRIS_ACLEDITORS, IRIS_QUERYMANAGERS, IRIS_SCHEMAMANAGERS, IRIS_SUPERUSERS, NON_INTERACTIVE_GROUP, QUERY_VIEW_ONLY_GROUP
-
Constructor Summary
Constructors Constructor Description CachingGroupProvider(IrisGroupProvider groupProvider)
CachingGroupProvider(IrisGroupProvider groupProvider, boolean acrossUsers)
Create a caching group provider. -
Method Summary
Modifier and Type Method Description String[]
getAllGroups()
String[]
getAllUsers()
String[]
getGroupsForUser(com.fishlib.auth.UserContext userContext)
String
getRunAsUser(com.fishlib.auth.UserContext userContext)
Map<String,String>
getRunAsUserMap()
String[]
getUsersForGroup(String group)
Set<String>
getUsersForGroupCached(String group)
IrisGroupProvider.UserType
getUserType(com.fishlib.auth.UserContext userContext)
boolean
isAclEditor(com.fishlib.auth.UserContext userContext)
boolean
isMember(com.fishlib.auth.UserContext userContext, String owner, String[] groups)
boolean
isQueryManager(com.fishlib.auth.UserContext userContext)
boolean
isSchemaManager(com.fishlib.auth.UserContext userContext)
boolean
isSuperUser(com.fishlib.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(com.fishlib.auth.UserContext userContext)- Specified by:
isSuperUser
in interfaceIrisGroupProvider
-
isQueryManager
public boolean isQueryManager(com.fishlib.auth.UserContext userContext)- Specified by:
isQueryManager
in interfaceIrisGroupProvider
-
isAclEditor
public boolean isAclEditor(com.fishlib.auth.UserContext userContext)- Specified by:
isAclEditor
in interfaceIrisGroupProvider
-
isSchemaManager
public boolean isSchemaManager(com.fishlib.auth.UserContext userContext)- 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
-
getAllGroups
- Specified by:
getAllGroups
in interfaceIrisGroupProvider
-
getAllUsers
- Specified by:
getAllUsers
in interfaceIrisGroupProvider
-
getRunAsUserMap
- Specified by:
getRunAsUserMap
in interfaceIrisGroupProvider
-
getRunAsUser
- Specified by:
getRunAsUser
in interfaceIrisGroupProvider
-