Class StringHierarchicalAccessController
- java.lang.Object
-
- org.ametys.runtime.plugin.component.AbstractLogEnabled
-
- org.ametys.plugins.core.impl.right.AbstractProfileStorageBasedAccessController
-
- org.ametys.plugins.core.impl.right.AbstractHierarchicalAccessController<String>
-
- org.ametys.plugins.core.impl.right.StringHierarchicalAccessController
-
- All Implemented Interfaces:
AccessController
,LogEnabled
,Initializable
,Component
,Configurable
,Serviceable
- Direct Known Subclasses:
WebWorkspaceAccessController
,WorkspaceAccessController
public class StringHierarchicalAccessController extends AbstractHierarchicalAccessController<String> implements Configurable
This implementation will manage hierarchical string (parents separated by '/'). For example '/node1/node2/node3', will seek for rights on '/node1/node2/node3', if nothing is found will try on '/node1/node2', and finally on '/node1'. Configurable with several <prefix>/myprefix</prefix> If this AcessController is limited to a workspace (by the correspondingRightAssignmentContext
), this should be specified with a configuration <workspace> that is a negativable regexp of a workspace context (such as '/cms' or '!/admin')
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.ametys.plugins.core.impl.right.AbstractProfileStorageBasedAccessController
AbstractProfileStorageBasedAccessController.Cache1Key, AbstractProfileStorageBasedAccessController.Cache2Key, AbstractProfileStorageBasedAccessController.CacheKind
-
Nested classes/interfaces inherited from interface org.ametys.core.right.AccessController
AccessController.AccessResult
-
-
Field Summary
Fields Modifier and Type Field Description protected Set<String>
_prefixes
The prefixesprotected boolean
_reverseWorkspaceMather
Consider _workspaceMatcher negativelyprotected Pattern
_workspaceMatcher
The regexp that should match current workspaceprotected static char
SEPARATOR
The separator character-
Fields inherited from class org.ametys.plugins.core.impl.right.AbstractProfileStorageBasedAccessController
__ANONYMOUS_USER_IDENTITY, __ANY_CONTECTED_USER_IDENTITY, _cacheManager, _profileAssignmentStorageEP, _rightProfileDAO
-
-
Constructor Summary
Constructors Constructor Description StringHierarchicalAccessController()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Set<? extends Object>
_convertWorkspaceToRootRightContexts(Set<Object> workspacesContexts)
Get the current workspaces contexts and turn it into root contexts in order to allow methods hasXXXAnyPermissionOnWorkspace to workprotected Set<String>
_getParents(String object)
Gets the parents of the object.void
configure(Configuration configuration)
protected Set<String>
getRootPrefixes()
Get the prefix of the path acceptedprotected Set<String>
getSupportedPrefixes()
Get the prefix of the path acceptedboolean
isSupported(Object object)
Returns true if this access controller supports the given object-
Methods inherited from class org.ametys.plugins.core.impl.right.AbstractHierarchicalAccessController
_getPermission, _getPermissionByGroup, _getPermissionByUser, _getPermissionForAnonymous, _getPermissionForAnyConnectedUser, getPermissionByRight, isInheritanceDisallowed
-
Methods inherited from class org.ametys.plugins.core.impl.right.AbstractProfileStorageBasedAccessController
_convertContext, _hasRightResultInFirstCache, _hasRightResultInSecondCache, _putInFirstCache, _putInSecondCache, getPermission, getPermissionByGroup, getPermissionByUser, getPermissionForAnonymous, getPermissionForAnyConnectedUser, getReadAccessPermission, getReadAccessPermissionByGroup, getReadAccessPermissionByUser, getReadAccessPermissionForAnonymous, getReadAccessPermissionForAnyConnectedUser, hasAnonymousAnyPermissionOnWorkspace, hasAnonymousAnyReadAccessPermissionOnWorkspace, hasAnyConnectedUserAnyPermissionOnWorkspace, hasAnyConnectedUserAnyReadAccessPermissionOnWorkspace, hasUserAnyPermissionOnWorkspace, hasUserAnyReadAccessPermissionOnWorkspace, initialize, service
-
Methods inherited from class org.ametys.runtime.plugin.component.AbstractLogEnabled
getLogger, setLogger
-
-
-
-
Field Detail
-
SEPARATOR
protected static final char SEPARATOR
The separator character- See Also:
- Constant Field Values
-
_workspaceMatcher
protected Pattern _workspaceMatcher
The regexp that should match current workspace
-
_reverseWorkspaceMather
protected boolean _reverseWorkspaceMather
Consider _workspaceMatcher negatively
-
-
Constructor Detail
-
StringHierarchicalAccessController
public StringHierarchicalAccessController()
-
-
Method Detail
-
configure
public void configure(Configuration configuration) throws ConfigurationException
- Specified by:
configure
in interfaceConfigurable
- Throws:
ConfigurationException
-
getSupportedPrefixes
protected Set<String> getSupportedPrefixes()
Get the prefix of the path accepted- Returns:
- The non-null and non-empty prefixes, starting by '/'
-
getRootPrefixes
protected Set<String> getRootPrefixes()
Get the prefix of the path accepted- Returns:
- The non-null and non-empty prefixes, starting by '/'
-
_convertWorkspaceToRootRightContexts
protected Set<? extends Object> _convertWorkspaceToRootRightContexts(Set<Object> workspacesContexts)
Description copied from class:AbstractProfileStorageBasedAccessController
Get the current workspaces contexts and turn it into root contexts in order to allow methods hasXXXAnyPermissionOnWorkspace to work- Specified by:
_convertWorkspaceToRootRightContexts
in classAbstractProfileStorageBasedAccessController
- Parameters:
workspacesContexts
- The workspace contexts. Such as '/${WorkspaceName}', '/admin'- Returns:
- A null or empty set if the current AccessController does not apply to any workspace context, or the root object where ProfileAssignmentStorageExtension should start looking at to find any permission
-
isSupported
public boolean isSupported(Object object)
Description copied from interface:AccessController
Returns true if this access controller supports the given object- Specified by:
isSupported
in interfaceAccessController
- Parameters:
object
- The object to test- Returns:
- true if this access controller supports the given object
-
_getParents
protected Set<String> _getParents(String object)
Description copied from class:AbstractHierarchicalAccessController
Gets the parents of the object. Must return null when the object is the "root" (where "root" means here the root of the hierarchy of the access controller)- Specified by:
_getParents
in classAbstractHierarchicalAccessController<String>
- Parameters:
object
- The object- Returns:
- the parents of the object, or null if the object is the "root" of the hierarchy
-
-