use of org.camunda.bpm.engine.impl.persistence.entity.JobDefinitionManager in project camunda-bpm-platform by camunda.
the class AbstractSetJobDefinitionStateCmd method checkAuthorization.
@Override
protected void checkAuthorization(CommandContext commandContext) {
for (CommandChecker checker : commandContext.getProcessEngineConfiguration().getCommandCheckers()) {
if (jobDefinitionId != null) {
JobDefinitionManager jobDefinitionManager = commandContext.getJobDefinitionManager();
JobDefinitionEntity jobDefinition = jobDefinitionManager.findById(jobDefinitionId);
if (jobDefinition != null && jobDefinition.getProcessDefinitionKey() != null) {
String processDefinitionKey = jobDefinition.getProcessDefinitionKey();
checker.checkUpdateProcessDefinitionByKey(processDefinitionKey);
if (includeSubResources) {
checker.checkUpdateProcessInstanceByProcessDefinitionKey(processDefinitionKey);
}
}
} else if (processDefinitionId != null) {
checker.checkUpdateProcessDefinitionById(processDefinitionId);
if (includeSubResources) {
checker.checkUpdateProcessInstanceByProcessDefinitionId(processDefinitionId);
}
} else if (processDefinitionKey != null) {
checker.checkUpdateProcessDefinitionByKey(processDefinitionKey);
if (includeSubResources) {
checker.checkUpdateProcessInstanceByProcessDefinitionKey(processDefinitionKey);
}
}
}
}
use of org.camunda.bpm.engine.impl.persistence.entity.JobDefinitionManager in project camunda-bpm-platform by camunda.
the class AbstractSetJobStateCmd method checkAuthorization.
@Override
protected void checkAuthorization(CommandContext commandContext) {
for (CommandChecker checker : commandContext.getProcessEngineConfiguration().getCommandCheckers()) {
if (jobId != null) {
JobManager jobManager = commandContext.getJobManager();
JobEntity job = jobManager.findJobById(jobId);
if (job != null) {
String processInstanceId = job.getProcessInstanceId();
if (processInstanceId != null) {
checker.checkUpdateProcessInstanceById(processInstanceId);
} else {
// start timer job is not assigned to a specific process
// instance, that's why we have to check whether there
// exists a UPDATE_INSTANCES permission on process definition or
// a UPDATE permission on any process instance
String processDefinitionKey = job.getProcessDefinitionKey();
if (processDefinitionKey != null) {
checker.checkUpdateProcessInstanceByProcessDefinitionKey(processDefinitionKey);
}
}
// if (processInstanceId == null && processDefinitionKey == null):
// job is not assigned to any process instance nor process definition
// then it is always possible to activate/suspend the corresponding job
// -> no authorization check necessary
}
} else if (jobDefinitionId != null) {
JobDefinitionManager jobDefinitionManager = commandContext.getJobDefinitionManager();
JobDefinitionEntity jobDefinition = jobDefinitionManager.findById(jobDefinitionId);
if (jobDefinition != null) {
String processDefinitionKey = jobDefinition.getProcessDefinitionKey();
checker.checkUpdateProcessInstanceByProcessDefinitionKey(processDefinitionKey);
}
} else if (processInstanceId != null) {
checker.checkUpdateProcessInstanceById(processInstanceId);
} else if (processDefinitionId != null) {
checker.checkUpdateProcessInstanceByProcessDefinitionId(processDefinitionId);
} else if (processDefinitionKey != null) {
checker.checkUpdateProcessInstanceByProcessDefinitionKey(processDefinitionKey);
}
}
}
Aggregations