Class CheckRightsCondition
java.lang.Object
org.ametys.plugins.workflow.AbstractWorkflowComponent
org.ametys.plugins.workflow.component.CheckRightsCondition
- All Implemented Interfaces:
com.opensymphony.workflow.Condition
,EnhancedCondition
,Disposable
,Initializable
,LogEnabled
,Serviceable
- Direct Known Subclasses:
AmetysObjectCheckRightsCondition
,ContentCheckRightsCondition
,CreateContentRightCondition
,ExplorerNodeCheckRightsCondition
public class CheckRightsCondition
extends AbstractWorkflowComponent
implements EnhancedCondition, Initializable, Disposable
Condition for checking rights of an user for the current action.
The following configuration can be used for checking rights:
<condition type="avalon"> <arg name="role">org.ametys.plugins.workflow.component.CheckRightsCondition</arg> <arg name="right">Right_Edition</arg> [ <arg name="context">/cms</arg>] </condition>
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.ametys.plugins.workflow.EnhancedCondition
EnhancedCondition.ConditionArgument
-
Field Summary
Modifier and TypeFieldDescriptionprotected static final String
Key for getting the context to use.protected static final String
Default context to use.protected static final String
Key for getting the right to check.protected I18nUtils
I18nUtilsprotected RightManager
Rights manager available to subclasses.protected RightsExtensionPoint
The rights extension pointstatic final String
Boolean to force the CheckRightsCondition to returns ok.Fields inherited from class org.ametys.plugins.workflow.AbstractWorkflowComponent
_logger, _manager, CONTEXT_PARAMETERS_KEY, FAIL_CONDITIONS_KEY, RESULT_MAP_KEY, WORKFLOW_ERRORS_KEY, WORKFLOW_WARNS_KEY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
_checkRights
(Map transientVars, Map args, UserIdentity user, String rightNeeded) Check if the current user has the needed right.protected Object
_computeContext
(Map transientVars, Map args, UserIdentity user, String right) Compute the context to use.
Default implementation uses standard context"/cms"
.protected I18nizableText
_getMultipleConditionsDescriptionKey
(List<String> parameters) Get condition description when there are multiple rights involvedprotected I18nizableText
_getSingleConditionDescriptionKey
(List<String> parameters) Get condition description when there is one rightprotected boolean
checkMultipleAndRights
(UserIdentity user, String[] rights, Object context) Check that a user has all the given rights on a context (AND condition).protected boolean
checkMultipleOrRights
(UserIdentity user, String[] rights, Object context) Check that a user has at least one of the given rights on a context (OR condition).void
dispose()
Get the list of accepted arguments for this conditiongetDescription
(Map<String, String> argumentsValues) Get the condition descriptions depending on arguments valuesprotected boolean
hasRight
(UserIdentity user, String right, Object context) Test if a user has a right on a context.void
boolean
passesCondition
(Map transientVars, Map args, com.opensymphony.module.propertyset.PropertySet ps) Methods inherited from class org.ametys.plugins.workflow.AbstractWorkflowComponent
addWorkflowError, addWorkflowWarning, enableLogging, getConditionFailures, getContextParameters, getResultsMap, getUser, service
-
Field Details
-
FORCE
Boolean to force the CheckRightsCondition to returns ok. -
__DEFAULT_CONTEXT
Default context to use.- See Also:
-
__RIGHT_KEY
Key for getting the right to check.- See Also:
-
__CONTEXT_KEY
Key for getting the context to use.- See Also:
-
_rightManager
Rights manager available to subclasses. -
_rightsExtensionPoint
The rights extension point -
_i18nUtils
I18nUtils
-
-
Constructor Details
-
CheckRightsCondition
public CheckRightsCondition()
-
-
Method Details
-
initialize
- Specified by:
initialize
in interfaceInitializable
- Throws:
Exception
-
passesCondition
public boolean passesCondition(Map transientVars, Map args, com.opensymphony.module.propertyset.PropertySet ps) throws com.opensymphony.workflow.WorkflowException - Specified by:
passesCondition
in interfacecom.opensymphony.workflow.Condition
- Throws:
com.opensymphony.workflow.WorkflowException
-
_checkRights
protected boolean _checkRights(Map transientVars, Map args, UserIdentity user, String rightNeeded) throws com.opensymphony.workflow.WorkflowException Check if the current user has the needed right.- Parameters:
transientVars
- variables that will not be persisted.args
- the properties for this function invocation.user
- the current user.rightNeeded
- the needed right.- Returns:
true
if the user has the right,false
otherwise.- Throws:
com.opensymphony.workflow.WorkflowException
- if an error occurs.
-
checkMultipleAndRights
Check that a user has all the given rights on a context (AND condition).- Parameters:
user
- the user.rights
- the rights to check.context
- the right context.- Returns:
- true if the user has all the rights, false otherwise.
-
checkMultipleOrRights
Check that a user has at least one of the given rights on a context (OR condition).- Parameters:
user
- the user.rights
- the rights to check.context
- the right context.- Returns:
- true if the user has at least one right, false otherwise.
-
hasRight
Test if a user has a right on a context.- Parameters:
user
- the userright
- the right to check.context
- the right context.- Returns:
- true if the user has the right, false otherwise.
-
_computeContext
protected Object _computeContext(Map transientVars, Map args, UserIdentity user, String right) throws com.opensymphony.workflow.WorkflowException Compute the context to use.
Default implementation uses standard context"/cms"
.- Parameters:
transientVars
- variables that will not be persisted.args
- the properties for this function invocation.user
- the current user.right
- the needed right.- Returns:
- the computed context.
- Throws:
com.opensymphony.workflow.WorkflowException
- if an error occurs.
-
dispose
- Specified by:
dispose
in interfaceDisposable
-
getArguments
Description copied from interface:EnhancedCondition
Get the list of accepted arguments for this condition- Specified by:
getArguments
in interfaceEnhancedCondition
- Returns:
- a List of argument names and associated description
-
_getMultipleConditionsDescriptionKey
Get condition description when there are multiple rights involved- Parameters:
parameters
- list of rights- Returns:
- the description
-
_getSingleConditionDescriptionKey
Get condition description when there is one right- Parameters:
parameters
- the right label as a List- Returns:
- the description
-
getDescription
Description copied from interface:EnhancedCondition
Get the condition descriptions depending on arguments values- Specified by:
getDescription
in interfaceEnhancedCondition
- Parameters:
argumentsValues
- a map of the arguments with their values in current workflow- Returns:
- a description to display in workflow editor vue
-