Class AbstractPlatformSecurityService
java.lang.Object
com.flowable.platform.security.service.AbstractPlatformSecurityService
- All Implemented Interfaces:
PermissionServiceRegistryAware
,Aware
- Direct Known Subclasses:
CasePermissionServiceImpl
,ExternalWorkerJobPermissionService
,PlatformAgentService
,PlatformAppService
,PlatformCaseDefinitionService
,PlatformCaseInstanceService
,PlatformCasePageService
,PlatformCommentService
,PlatformContentItemService
,PlatformEntityLinkService
,PlatformPageService
,PlatformProcessDefinitionService
,PlatformProcessInstanceService
,PlatformStandardDataQuerySafeQueryTransformer
,PlatformTaskService
,ProcessPermissionServiceImpl
,TaskPermissionServiceImpl
,WorkDefinitionService
,WorkIndexService
public abstract class AbstractPlatformSecurityService
extends Object
implements PermissionServiceRegistryAware
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected String[]
protected static final String
protected org.flowable.cmmn.api.CmmnRepositoryService
protected org.flowable.cmmn.api.CmmnRuntimeService
protected org.flowable.cmmn.api.CmmnTaskService
protected String
protected SecurityPolicyModel
protected static final String
protected boolean
protected PermissionServiceRegistry
protected PlatformSecurityInterceptor
protected PolicyRepositoryService
protected static final String
protected org.flowable.engine.RepositoryService
protected org.flowable.engine.RuntimeService
protected static final String
protected static final String
protected org.flowable.engine.TaskService
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addAdditionalPermissions
(List<String> permissions, String role, String prefix, SecurityPolicyModel securityPolicyModel) protected boolean
protected boolean
fetchCasePermissionMappings
(String caseInstanceId, String startUserId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, String tenantId) fetchCasePermissionMappings
(org.flowable.cmmn.api.runtime.CaseInstance caseInstance, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) protected SecurityPolicyModel
fetchCaseSecurityPolicyModel
(org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, String tenantId) fetchPermissions
(SecurityPolicyModel securityPolicyModel, String prefix, String startUserId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String userId, Set<String> groupKeys) fetchPermissionsForTask
(SecurityPolicyModel securityPolicyModel, String assignee, String owner, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String userId, Set<String> groupKeys) fetchProcessPermissionMappings
(String processInstanceId, String startUserId, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.engine.repository.ProcessDefinition processDefinition, String tenantId) fetchProcessPermissionMappings
(org.flowable.engine.runtime.ProcessInstance processInstance, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) protected SecurityPolicyModel
fetchProcessSecurityPolicyModel
(org.flowable.engine.repository.ProcessDefinition processDefinition, String tenantId) protected SecurityPolicyModel
fetchSecurityPolicyModel
(org.flowable.bpmn.model.Process process, String tenantId) protected SecurityPolicyModel
fetchSecurityPolicyModel
(org.flowable.cmmn.model.Case caze, String tenantId) protected SecurityPolicyModel
fetchSecurityPolicyModelForCaseInstance
(String caseInstanceId) protected SecurityPolicyModel
fetchSecurityPolicyModelForProcessInstance
(String processInstanceId) protected SecurityPolicyModel
fetchSecurityPolicyModelForTask
(org.flowable.bpmn.model.FlowElement flowElement, org.flowable.bpmn.model.Process process, String tenantId) protected SecurityPolicyModel
fetchSecurityPolicyModelForTask
(org.flowable.cmmn.model.PlanItemDefinition planItemDefinition, org.flowable.cmmn.model.Case caze, String tenantId) fetchTaskPermissionMappings
(String taskId, String taskDefinitionKey, String assignee, String owner, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, String tenantId) fetchTaskPermissionMappings
(String taskId, String taskDefinitionKey, String assignee, String owner, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, org.flowable.engine.repository.ProcessDefinition processDefinition, String tenantId) fetchTaskPermissionMappings
(org.flowable.task.api.Task task, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) fetchTaskPermissionMappingsForCase
(String taskDefinitionKey, String caseDefinitionId, String assignee, String owner, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String tenantId) fetchTaskPermissionMappingsForProcess
(String taskDefinitionKey, String processDefinitionId, String assignee, String owner, List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String tenantId) protected SecurityPolicyModel
fetchTaskSecurityPolicyModelForCase
(String taskDefinitionKey, String caseDefinitionId, String tenantId) protected SecurityPolicyModel
fetchTaskSecurityPolicyModelForProcess
(String taskDefinitionKey, String processDefinitionId, String tenantId) filterPermissionsForRole
(String role, String prefix, SecurityPolicyModel securityPolicyModel) protected String
getCmmnExtensionElementValue
(String name, Map<String, List<org.flowable.cmmn.model.ExtensionElement>> extensionElements) protected SecurityScope
protected String
protected String
protected SecurityPolicyModel
getDefaultSecurityPolicyModel
(String tenantId) protected String
getExtensionElementValue
(String name, Map<String, List<org.flowable.bpmn.model.ExtensionElement>> extensionElements) protected SecurityPolicyModel
getSecurityPolicyModelByKey
(String securityPolicyModelKey, String tenantId) protected boolean
groupOrUserMatches
(String identityLinkUser, String identityLinkGroup, String userId, Set<String> groupKeys) protected boolean
groupOrUserMatches
(org.flowable.identitylink.api.IdentityLinkInfo identityLink, String userId, Set<String> groupKeys) protected boolean
hasAnyMatchingIdentityLink
(Collection<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String userId, Set<String> groupKeys) protected boolean
hasAssigneeOrOwnerIdentityLink
(List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) protected boolean
hasPermissionForEntityLinks
(String permission, List<org.flowable.entitylink.api.EntityLink> entityLinks, String userId, Set<String> groupKeys, String tenantId) protected boolean
hasPermissionForHistoricEntityLinks
(String permission, List<org.flowable.entitylink.api.history.HistoricEntityLink> entityLinks, String userId, Set<String> groupKeys, String tenantId) void
setPermissionServiceRegistry
(PermissionServiceRegistry permissionServiceRegistry) Set the PermissionRegistry that this object should use.protected String
translatePermissionForScope
(String permission, String scopeType)
-
Field Details
-
SECURITY_POLICY_MODEL
- See Also:
-
CASE_PREFIX
- See Also:
-
PROCESS_PREFIX
- See Also:
-
TASK_PREFIX
- See Also:
-
EXTERNAL_WORKER_PREFIX
- See Also:
-
repositoryService
-
cmmnRepositoryService
@Autowired(required=false) protected org.flowable.cmmn.api.CmmnRepositoryService cmmnRepositoryService -
runtimeService
-
cmmnRuntimeService
-
taskService
-
cmmnTaskService
-
policyRepositoryService
-
platformSecurityInterceptor
-
additionalAdminUsers
-
permissionServiceRegistry
-
defaultSecurityPolicyKey
-
defaultSecurityPolicyModel
-
inspectEnabled
-
-
Constructor Details
-
AbstractPlatformSecurityService
public AbstractPlatformSecurityService()
-
-
Method Details
-
fetchCasePermissionMappings
-
fetchCasePermissionMappings
-
fetchCaseSecurityPolicyModel
protected SecurityPolicyModel fetchCaseSecurityPolicyModel(org.flowable.cmmn.api.repository.CaseDefinition caseDefinition, String tenantId) -
fetchProcessPermissionMappings
-
fetchProcessPermissionMappings
-
fetchProcessSecurityPolicyModel
protected SecurityPolicyModel fetchProcessSecurityPolicyModel(org.flowable.engine.repository.ProcessDefinition processDefinition, String tenantId) -
fetchTaskPermissionMappingsForProcess
-
fetchTaskPermissionMappingsForCase
-
fetchTaskSecurityPolicyModelForProcess
protected SecurityPolicyModel fetchTaskSecurityPolicyModelForProcess(String taskDefinitionKey, String processDefinitionId, String tenantId) -
fetchSecurityPolicyModelForProcessInstance
-
fetchTaskSecurityPolicyModelForCase
protected SecurityPolicyModel fetchTaskSecurityPolicyModelForCase(String taskDefinitionKey, String caseDefinitionId, String tenantId) -
fetchSecurityPolicyModelForCaseInstance
-
fetchTaskPermissionMappings
-
fetchTaskPermissionMappings
-
fetchTaskPermissionMappings
-
fetchPermissions
-
fetchPermissionsForTask
-
hasAssigneeOrOwnerIdentityLink
protected boolean hasAssigneeOrOwnerIdentityLink(List<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks) -
filterPermissionsForRole
protected List<String> filterPermissionsForRole(String role, String prefix, SecurityPolicyModel securityPolicyModel) -
addAdditionalPermissions
protected void addAdditionalPermissions(List<String> permissions, String role, String prefix, SecurityPolicyModel securityPolicyModel) -
fetchSecurityPolicyModel
protected SecurityPolicyModel fetchSecurityPolicyModel(org.flowable.cmmn.model.Case caze, String tenantId) -
fetchSecurityPolicyModel
protected SecurityPolicyModel fetchSecurityPolicyModel(org.flowable.bpmn.model.Process process, String tenantId) -
fetchSecurityPolicyModelForTask
protected SecurityPolicyModel fetchSecurityPolicyModelForTask(org.flowable.bpmn.model.FlowElement flowElement, org.flowable.bpmn.model.Process process, String tenantId) -
fetchSecurityPolicyModelForTask
protected SecurityPolicyModel fetchSecurityPolicyModelForTask(org.flowable.cmmn.model.PlanItemDefinition planItemDefinition, org.flowable.cmmn.model.Case caze, String tenantId) -
getCurrentGroupKeys
-
getCurrentUserId
-
getCurrentTenantId
-
getCurrentSecurityScope
-
currentUserHasAdminRights
protected boolean currentUserHasAdminRights() -
currentUserIsSuperAdmin
protected boolean currentUserIsSuperAdmin() -
groupOrUserMatches
-
groupOrUserMatches
-
hasAnyMatchingIdentityLink
protected boolean hasAnyMatchingIdentityLink(Collection<? extends org.flowable.identitylink.api.IdentityLinkInfo> identityLinks, String userId, Set<String> groupKeys) -
hasPermissionForEntityLinks
-
hasPermissionForHistoricEntityLinks
-
setPermissionServiceRegistry
Description copied from interface:PermissionServiceRegistryAware
Set the PermissionRegistry that this object should use.- Specified by:
setPermissionServiceRegistry
in interfacePermissionServiceRegistryAware
- Parameters:
permissionServiceRegistry
- to be used by this object
-
getSecurityPolicyModelByKey
protected SecurityPolicyModel getSecurityPolicyModelByKey(String securityPolicyModelKey, String tenantId) -
getDefaultSecurityPolicyModel
-
getCmmnExtensionElementValue
-
getExtensionElementValue
-
translatePermissionForScope
-