Class ProcessPermissionServiceImpl
java.lang.Object
com.flowable.platform.security.service.AbstractPlatformSecurityService
com.flowable.platform.security.permission.ProcessPermissionServiceImpl
- All Implemented Interfaces:
PermissionService, PermissionServiceRegistryAware, ProcessPermissionService, Aware
public class ProcessPermissionServiceImpl
extends AbstractPlatformSecurityService
implements ProcessPermissionService
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.flowable.engine.HistoryServiceprotected PlatformIdentityServiceprotected final Stringprotected org.flowable.engine.ProcessEngineConfigurationFields inherited from class AbstractPlatformSecurityService
additionalAdminUsers, CASE_PREFIX, cmmnRepositoryService, cmmnRuntimeService, cmmnTaskService, defaultSecurityPolicyKey, defaultSecurityPolicyModel, EXTERNAL_WORKER_PREFIX, inspectEnabled, permissionServiceRegistry, platformSecurityInterceptor, policyRepositoryService, PROCESS_PREFIX, repositoryService, runtimeService, SECURITY_POLICY_MODEL, TASK_PREFIX, taskService -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancheckPermissionInProcessParent(String processPermission, SecurityPolicyModel securityPolicyModel) fetchPermissionsForHistoricScope(String scopeId, boolean checkWritePermissionInParent, String userId, Set<String> groupKeys, String tenantId) fetchPermissionsForHistoricScope(String scopeId, String userId, Set<String> groupKeys, String tenantId) fetchPermissionsForRuntimeScope(String scopeId, boolean checkWritePermissionInParent, String userId, Set<String> groupKeys, String tenantId) fetchPermissionsForRuntimeScope(String scopeId, String userId, Set<String> groupKeys, String tenantId) fetchSecurityPolicyModelForProcessInstance(String processDefinitionId, String tenantId) protected org.flowable.engine.repository.ProcessDefinitionfindProcessDefinition(String processDefinitionId, String processDefinitionKey, String tenantId) org.flowable.engine.history.HistoricProcessInstancegetHistoricProcessInstance(String processInstanceId, String tenantId) getHistoricProcessPermissions(String processInstanceId, String definitionId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String tenantId) org.flowable.engine.runtime.ProcessInstancegetProcessInstance(String processInstanceId, String tenantId) getRuntimeProcessPermissions(String processInstanceId, String definitionId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String tenantId) The scope type that this permissions service supports.protected SecurityPolicyModelgetSecurityModel(String processDefinitionId, String tenantId) protected booleanhasPermission(String permission, String startUserId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, SecurityPolicyModel securityPolicyModel) booleanhasPermissionForHistoricProcessInstance(String permission, org.flowable.engine.history.HistoricProcessInstance processInstance, String userId, Set<String> groupKeys, String tenantId) booleanhasPermissionForHistoricScope(String permission, String scopeId, String userId, Set<String> groupKeys, String tenantId) protected booleanhasPermissionForProcessInstance(String permission, String processInstanceId, boolean isHistoricInstance, String startUserId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String processDefinitionId, String userId, Set<String> groupKeys, String tenantId) booleanhasPermissionForProcessInstance(String permission, org.flowable.engine.runtime.ProcessInstance processInstance, String userId, Set<String> groupKeys, String tenantId) booleanhasPermissionForRuntimeScope(String permission, String scopeId, String userId, Set<String> groupKeys, String tenantId) booleanhasPermissionForScope(String permission, String scopeId, String userId, Set<String> groupKeys, String tenantId) booleanhasReadPermissionOnScopeDefinition(String scopeDefinitionId, String scopeDefinitionKey, String userId, Set<String> groupKeys, String tenantId) Collection<org.flowable.identitylink.api.IdentityLinkInfo> resolveCandidateIdentityLinks(String processInstanceId, String processDefinitionId) Resolves the identity links used to filter the assignee candidate list of a running process instance.translateParentPermissions(List<String> parentPermissions, String scopeType) voidvalidateParticipantValue(org.flowable.engine.runtime.ProcessInstance processInstance, String participantCandidate, String userId, Set<String> groupKeys, String tenantId) voidvalidatePermissionForHistoricProcessInstance(String permission, org.flowable.engine.history.HistoricProcessInstance processInstance, String userId, Set<String> groupKeys, String tenantId) voidvalidatePermissionForProcessInstance(String permission, org.flowable.engine.runtime.ProcessInstance processInstance, String userId, Set<String> groupKeys, String tenantId) Methods inherited from class AbstractPlatformSecurityService
addAdditionalPermissions, currentUserHasAdminRights, currentUserIsSuperAdmin, fetchCasePermissionMappings, fetchCasePermissionMappings, fetchCaseSecurityPolicyModel, fetchPermissions, fetchPermissionsForTask, fetchProcessPermissionMappings, fetchProcessPermissionMappings, fetchProcessSecurityPolicyModel, fetchSecurityPolicyModel, fetchSecurityPolicyModel, fetchSecurityPolicyModelForCaseInstance, fetchSecurityPolicyModelForProcessInstance, fetchSecurityPolicyModelForTask, fetchSecurityPolicyModelForTask, fetchTaskPermissionMappings, fetchTaskPermissionMappings, fetchTaskPermissionMappings, fetchTaskPermissionMappingsForCase, fetchTaskPermissionMappingsForProcess, fetchTaskSecurityPolicyModelForCase, fetchTaskSecurityPolicyModelForProcess, filterPermissionsForRole, getCmmnExtensionElementValue, getCurrentGroupKeys, getCurrentSecurityScope, getCurrentTenantId, getCurrentUserId, getDefaultSecurityPolicyModel, getExtensionElementValue, getSecurityPolicyModelByKey, groupOrUserMatches, groupOrUserMatches, hasAnyMatchingIdentityLink, hasAssigneeOrOwnerIdentityLink, hasPermissionForEntityLinks, hasPermissionForHistoricEntityLinks, setPermissionServiceRegistry, translatePermissionForScope
-
Field Details
-
historyService
-
processEngineConfiguration
-
identityService
-
participantCandidateGroups
-
-
Constructor Details
-
ProcessPermissionServiceImpl
-
-
Method Details
-
getScopeType
Description copied from interface:PermissionServiceThe scope type that this permissions service supports.- Specified by:
getScopeTypein interfacePermissionService
-
hasPermissionForScope
public boolean hasPermissionForScope(String permission, String scopeId, String userId, Set<String> groupKeys, String tenantId) - Specified by:
hasPermissionForScopein interfacePermissionService
-
validatePermissionForProcessInstance
public void validatePermissionForProcessInstance(String permission, org.flowable.engine.runtime.ProcessInstance processInstance, String userId, Set<String> groupKeys, String tenantId) - Specified by:
validatePermissionForProcessInstancein interfaceProcessPermissionService
-
hasPermissionForProcessInstance
public boolean hasPermissionForProcessInstance(String permission, org.flowable.engine.runtime.ProcessInstance processInstance, String userId, Set<String> groupKeys, String tenantId) - Specified by:
hasPermissionForProcessInstancein interfaceProcessPermissionService
-
fetchPermissionsForRuntimeScope
public List<String> fetchPermissionsForRuntimeScope(String scopeId, String userId, Set<String> groupKeys, String tenantId) - Specified by:
fetchPermissionsForRuntimeScopein interfacePermissionService
-
fetchPermissionsForRuntimeScope
public List<String> fetchPermissionsForRuntimeScope(String scopeId, boolean checkWritePermissionInParent, String userId, Set<String> groupKeys, String tenantId) - Specified by:
fetchPermissionsForRuntimeScopein interfacePermissionService
-
validatePermissionForHistoricProcessInstance
public void validatePermissionForHistoricProcessInstance(String permission, org.flowable.engine.history.HistoricProcessInstance processInstance, String userId, Set<String> groupKeys, String tenantId) - Specified by:
validatePermissionForHistoricProcessInstancein interfaceProcessPermissionService
-
hasPermissionForHistoricProcessInstance
public boolean hasPermissionForHistoricProcessInstance(String permission, org.flowable.engine.history.HistoricProcessInstance processInstance, String userId, Set<String> groupKeys, String tenantId) - Specified by:
hasPermissionForHistoricProcessInstancein interfaceProcessPermissionService
-
fetchPermissionsForHistoricScope
public List<String> fetchPermissionsForHistoricScope(String scopeId, String userId, Set<String> groupKeys, String tenantId) - Specified by:
fetchPermissionsForHistoricScopein interfacePermissionService
-
fetchPermissionsForHistoricScope
public List<String> fetchPermissionsForHistoricScope(String scopeId, boolean checkWritePermissionInParent, String userId, Set<String> groupKeys, String tenantId) - Specified by:
fetchPermissionsForHistoricScopein interfacePermissionService
-
hasPermissionForRuntimeScope
public boolean hasPermissionForRuntimeScope(String permission, String scopeId, String userId, Set<String> groupKeys, String tenantId) - Specified by:
hasPermissionForRuntimeScopein interfacePermissionService
-
hasPermissionForHistoricScope
public boolean hasPermissionForHistoricScope(String permission, String scopeId, String userId, Set<String> groupKeys, String tenantId) - Specified by:
hasPermissionForHistoricScopein interfacePermissionService
-
getRuntimeProcessPermissions
public List<String> getRuntimeProcessPermissions(String processInstanceId, String definitionId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String tenantId) - Specified by:
getRuntimeProcessPermissionsin interfaceProcessPermissionService
-
getHistoricProcessPermissions
public List<String> getHistoricProcessPermissions(String processInstanceId, String definitionId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String tenantId) - Specified by:
getHistoricProcessPermissionsin interfaceProcessPermissionService
-
hasReadPermissionOnScopeDefinition
public boolean hasReadPermissionOnScopeDefinition(String scopeDefinitionId, String scopeDefinitionKey, String userId, Set<String> groupKeys, String tenantId) - Specified by:
hasReadPermissionOnScopeDefinitionin interfacePermissionService
-
getProcessInstance
public org.flowable.engine.runtime.ProcessInstance getProcessInstance(String processInstanceId, String tenantId) - Specified by:
getProcessInstancein interfaceProcessPermissionService
-
getHistoricProcessInstance
public org.flowable.engine.history.HistoricProcessInstance getHistoricProcessInstance(String processInstanceId, String tenantId) - Specified by:
getHistoricProcessInstancein interfaceProcessPermissionService
-
fetchSecurityPolicyModelForProcessInstance
public SecurityPolicyModel fetchSecurityPolicyModelForProcessInstance(String processDefinitionId, String tenantId) - Specified by:
fetchSecurityPolicyModelForProcessInstancein interfaceProcessPermissionService
-
hasPermissionForProcessInstance
protected boolean hasPermissionForProcessInstance(String permission, String processInstanceId, boolean isHistoricInstance, String startUserId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String processDefinitionId, String userId, Set<String> groupKeys, String tenantId) -
validateParticipantValue
public void validateParticipantValue(org.flowable.engine.runtime.ProcessInstance processInstance, String participantCandidate, String userId, Set<String> groupKeys, String tenantId) - Specified by:
validateParticipantValuein interfaceProcessPermissionService
-
hasPermission
protected boolean hasPermission(String permission, String startUserId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, SecurityPolicyModel securityPolicyModel) -
getSecurityModel
-
findProcessDefinition
-
translateParentPermissions
-
checkPermissionInProcessParent
protected boolean checkPermissionInProcessParent(String processPermission, SecurityPolicyModel securityPolicyModel) -
resolveCandidateIdentityLinks
public Collection<org.flowable.identitylink.api.IdentityLinkInfo> resolveCandidateIdentityLinks(String processInstanceId, String processDefinitionId) Description copied from interface:ProcessPermissionServiceResolves the identity links used to filter the assignee candidate list of a running process instance.- Specified by:
resolveCandidateIdentityLinksin interfaceProcessPermissionService- Parameters:
processInstanceId- the id of the process instance to resolve identity links for.processDefinitionId- the id of the process definition; used to read thecandidates-typeextension element.- Returns:
- the identity links to restrict the candidate list to, or an empty collection when no
candidates-typefilter is configured, the configured value is unrecognized, or the filter resolves to no users/groups. Callers treat an empty collection as "no filter applied" (all users eligible), mirroring the task candidate behaviour.
-