PMC-1199
This commit is contained in:
@@ -11,6 +11,7 @@ use AppDelegationPeer;
|
||||
use AppDocument;
|
||||
use AppDocumentPeer;
|
||||
use AppHistoryPeer;
|
||||
use Application;
|
||||
use ApplicationPeer;
|
||||
use Applications;
|
||||
use AppNotesPeer;
|
||||
@@ -45,7 +46,6 @@ use ProcessMaker\Services\OAuth2\Server;
|
||||
use ProcessMaker\Util\DateTime as UtilDateTime;
|
||||
use ProcessMaker\Validation\ExceptionRestApi;
|
||||
use ProcessMaker\Validation\Validator as FileValidator;
|
||||
|
||||
use ProcessPeer;
|
||||
use ProcessUser;
|
||||
use ProcessUserPeer;
|
||||
@@ -3317,6 +3317,7 @@ class Cases
|
||||
* @param array $objectPermissions, the permissions that we need to review
|
||||
* @param boolean $objectSupervisor, if we need to get all the objects supervisor
|
||||
* @param string $tasUid
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function userAuthorization(
|
||||
@@ -3330,23 +3331,21 @@ class Cases
|
||||
) {
|
||||
$arrayAccess = [];
|
||||
|
||||
//User has participated
|
||||
$participated = new ListParticipatedLast();
|
||||
$listParticipated = $participated->loadList($usrUid, [], null, $appUid);
|
||||
$arrayAccess['participated'] = (count($listParticipated) == 0) ? false : true;
|
||||
// User has participated
|
||||
$arrayAccess['participated'] = Delegation::participation($appUid, $usrUid);
|
||||
|
||||
//User is supervisor
|
||||
// User is supervisor
|
||||
$supervisor = new BmProcessSupervisor();
|
||||
$isSupervisor = $supervisor->isUserProcessSupervisor($proUid, $usrUid);
|
||||
$arrayAccess['supervisor'] = ($isSupervisor) ? true : false;
|
||||
|
||||
//If the user is supervisor we will to return the object assigned
|
||||
// If the user is supervisor we will to return the object assigned
|
||||
if ($isSupervisor && $objectSupervisor) {
|
||||
$ps = new BmProcessSupervisor();
|
||||
$arrayAccess['objectSupervisor'] = $ps->getObjectSupervisor($proUid);
|
||||
}
|
||||
|
||||
//Roles Permissions
|
||||
// Roles Permissions
|
||||
if (count($rolesPermissions) > 0) {
|
||||
global $RBAC;
|
||||
foreach ($rolesPermissions as $value) {
|
||||
@@ -3354,7 +3353,7 @@ class Cases
|
||||
}
|
||||
}
|
||||
|
||||
//Object Permissions
|
||||
// Object Permissions
|
||||
if (count($objectPermissions) > 0) {
|
||||
$case = new ClassesCases();
|
||||
foreach ($objectPermissions as $key => $value) {
|
||||
|
||||
12
workflow/engine/src/ProcessMaker/Model/AppThread.php
Normal file
12
workflow/engine/src/ProcessMaker/Model/AppThread.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace ProcessMaker\Model;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class AppThread extends Model
|
||||
{
|
||||
protected $table = 'APP_THREAD';
|
||||
// We do not have create/update timestamps for this table
|
||||
public $timestamps = false;
|
||||
}
|
||||
@@ -563,4 +563,22 @@ class Delegation extends Model
|
||||
|
||||
return $arrayOpenThreads;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return if the user has participation in the case
|
||||
*
|
||||
* @param string $appUid, Case key
|
||||
* @param string $userUid, User key
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public static function participation($appUid, $userUid)
|
||||
{
|
||||
$query = Delegation::query()->select();
|
||||
$query->where('APP_UID', $appUid);
|
||||
$query->where('USR_UID', $userUid);
|
||||
$query->limit(1);
|
||||
|
||||
return ($query->count() > 0);
|
||||
}
|
||||
}
|
||||
|
||||
12
workflow/engine/src/ProcessMaker/Model/RbacRoles.php
Normal file
12
workflow/engine/src/ProcessMaker/Model/RbacRoles.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace ProcessMaker\Model;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class RbacRoles extends Model
|
||||
{
|
||||
protected $table = 'RBAC_ROLES';
|
||||
public $timestamps = false;
|
||||
|
||||
}
|
||||
12
workflow/engine/src/ProcessMaker/Model/RbacUsers.php
Normal file
12
workflow/engine/src/ProcessMaker/Model/RbacUsers.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace ProcessMaker\Model;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class RbacUsers extends Model
|
||||
{
|
||||
protected $table = 'RBAC_USERS';
|
||||
public $timestamps = false;
|
||||
|
||||
}
|
||||
12
workflow/engine/src/ProcessMaker/Model/RbacUsersRoles.php
Normal file
12
workflow/engine/src/ProcessMaker/Model/RbacUsersRoles.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace ProcessMaker\Model;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class RbacUsersRoles extends Model
|
||||
{
|
||||
protected $table = 'RBAC_USERS_ROLES';
|
||||
public $timestamps = false;
|
||||
|
||||
}
|
||||
15
workflow/engine/src/ProcessMaker/Model/WebEntry.php
Normal file
15
workflow/engine/src/ProcessMaker/Model/WebEntry.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace ProcessMaker\Model;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class WebEntry extends Model
|
||||
{
|
||||
// Set our table name
|
||||
protected $table = 'WEB_ENTRY';
|
||||
protected $primaryKey = 'WE_UID';
|
||||
|
||||
// We do not have create/update timestamps for this table
|
||||
public $timestamps = false;
|
||||
}
|
||||
@@ -284,7 +284,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
));
|
||||
}
|
||||
|
||||
$taskData = self::__updateServiceTask($activityBefore, $activityCurrent, $taskData);
|
||||
$taskData = self::updateServiceTask($activityBefore, $activityCurrent, $taskData);
|
||||
|
||||
if ($activityCurrent->getActLoopType() == "PARALLEL") {
|
||||
$task = \TaskPeer::retrieveByPK($actUid);
|
||||
@@ -326,7 +326,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
* @param $taskData
|
||||
* @return mixed
|
||||
*/
|
||||
public static function __updateServiceTask($activityBefore, $activityCurrent, $taskData)
|
||||
public static function updateServiceTask($activityBefore, $activityCurrent, $taskData)
|
||||
{
|
||||
$registry = PluginRegistry::loadSingleton();
|
||||
if ($activityBefore->getActTaskType() != "SERVICETASK" && $activityCurrent->getActTaskType() == "SERVICETASK") {
|
||||
@@ -439,7 +439,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//$this->updateEventStartObjects($data["FLO_ELEMENT_ORIGIN"], $data["FLO_ELEMENT_DEST"]);
|
||||
|
||||
//WebEntry-Event - Update
|
||||
$this->__updateWebEntryEventByEvent($data['FLO_ELEMENT_ORIGIN'], ['ACT_UID' => $data['FLO_ELEMENT_DEST']]);
|
||||
$this->updateWebEntryEventByEvent($data['FLO_ELEMENT_ORIGIN'], ['ACT_UID' => $data['FLO_ELEMENT_DEST']]);
|
||||
break;
|
||||
case "bpmnEvent":
|
||||
$messageEventRelationUid = $this->createMessageEventRelationByBpmnFlow(\BpmnFlowPeer::retrieveByPK($floUid));
|
||||
@@ -489,7 +489,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//$this->updateEventStartObjects($flowCurrent->getFloElementOrigin(), $flowCurrent->getFloElementDest());
|
||||
|
||||
//WebEntry-Event - Update
|
||||
$this->__updateWebEntryEventByEvent($flowCurrent->getFloElementOrigin(), ['ACT_UID' => $flowCurrent->getFloElementDest()]);
|
||||
$this->updateWebEntryEventByEvent($flowCurrent->getFloElementOrigin(), ['ACT_UID' => $flowCurrent->getFloElementDest()]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -586,7 +586,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
|
||||
//WebEntry-Event - Update
|
||||
if (is_null($bpmnFlow)) {
|
||||
$this->__updateWebEntryEventByEvent($flow->getFloElementOrigin(), ['WEE_STATUS' => 'DISABLED']);
|
||||
$this->updateWebEntryEventByEvent($flow->getFloElementOrigin(), ['WEE_STATUS' => 'DISABLED']);
|
||||
}
|
||||
} elseif ($flow->getFloElementOriginType() == "bpmnActivity" &&
|
||||
$flow->getFloElementDestType() == "bpmnEvent") {
|
||||
@@ -633,7 +633,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
// TODO Complete for other routes, activity->activity, activity->gateway and viceversa
|
||||
}
|
||||
|
||||
private function __updateEventActivityDefinition(\BpmnEvent $bpmnEvent, $flagStartTask)
|
||||
private function updateEventActivityDefinition(\BpmnEvent $bpmnEvent, $flagStartTask)
|
||||
{
|
||||
try {
|
||||
if ($bpmnEvent->getEvnType() == "START") {
|
||||
@@ -655,7 +655,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
if (!is_null(\BpmnActivityPeer::retrieveByPK($arrayFlowData['FLO_ELEMENT_DEST']))) {
|
||||
$this->wp->setStartTask($arrayFlowData['FLO_ELEMENT_DEST'], $flagStartTask);
|
||||
|
||||
$this->__updateWebEntryEventByEvent($bpmnEvent->getEvnUid());
|
||||
$this->updateWebEntryEventByEvent($bpmnEvent->getEvnUid());
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -758,7 +758,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
if ((isset($arrayEventData["EVN_TYPE"]) && $arrayEventData["EVN_TYPE"] != $bpmnEvent->getEvnType()) ||
|
||||
(isset($arrayEventData["EVN_MARKER"]) && $arrayEventData["EVN_MARKER"] != $bpmnEvent->getEvnMarker())
|
||||
) {
|
||||
$this->__updateEventActivityDefinition($bpmnEvent, false);
|
||||
$this->updateEventActivityDefinition($bpmnEvent, false);
|
||||
$this->removeEventDefinition($bpmnEvent);
|
||||
}
|
||||
|
||||
@@ -773,7 +773,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
try {
|
||||
$bpmnEvent = \BpmnEventPeer::retrieveByPK($eventUid);
|
||||
|
||||
$this->__updateEventActivityDefinition($bpmnEvent, false);
|
||||
$this->updateEventActivityDefinition($bpmnEvent, false);
|
||||
$this->removeEventDefinition($bpmnEvent);
|
||||
|
||||
parent::removeEvent($eventUid);
|
||||
@@ -794,7 +794,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
* @return string
|
||||
* @throws Exception
|
||||
*/
|
||||
private function __createTaskByElement($elementUid, $elementType, $key, $eventName = '')
|
||||
private function createTaskByElement($elementUid, $elementType, $key, $eventName = '')
|
||||
{
|
||||
try {
|
||||
$taskTitle = $taskType = $this->arrayTaskAttribute[$key]["type"];
|
||||
@@ -940,7 +940,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
break;
|
||||
case "bpmnGateway":
|
||||
//Gateway ----> Gateway
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$arrayFlowData['FLO_ELEMENT_DEST'],
|
||||
'bpmnGateway',
|
||||
'gateway-to-gateway'
|
||||
@@ -963,7 +963,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//$event->getEvnMarker(): EMPTY or MESSAGETHROW
|
||||
switch ($event->getEvnMarker()) {
|
||||
case "MESSAGETHROW":
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-message-event"
|
||||
@@ -973,7 +973,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
case "EMAIL":
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-email-event"
|
||||
@@ -1026,7 +1026,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
"EMAIL" => "intermediate-throw-email-event"
|
||||
);
|
||||
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$eventUid,
|
||||
"bpmnEvent",
|
||||
$arrayKey[$arrayEventData["EVN_MARKER"]],
|
||||
@@ -1080,7 +1080,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//$event->getEvnMarker(): EMPTY or MESSAGETHROW
|
||||
switch ($event->getEvnMarker()) {
|
||||
case "MESSAGETHROW":
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-message-event"
|
||||
@@ -1090,7 +1090,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
case "EMAIL":
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-email-event"
|
||||
@@ -1173,7 +1173,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//$event->getEvnMarker(): EMPTY or MESSAGETHROW
|
||||
switch ($event->getEvnMarker()) {
|
||||
case "MESSAGETHROW":
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-message-event"
|
||||
@@ -1183,7 +1183,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL");
|
||||
break;
|
||||
case "EMAIL":
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$event->getEvnUid(),
|
||||
"bpmnEvent",
|
||||
"end-email-event"
|
||||
@@ -1218,7 +1218,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
case "START":
|
||||
switch ($event["EVN_MARKER"]) {
|
||||
case "MESSAGECATCH":
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$event["EVN_UID"],
|
||||
"bpmnEvent",
|
||||
"start-message-event"
|
||||
@@ -1229,7 +1229,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$this->mapBpmnEventToWorkflowRoutes($taskUid, $event["EVN_UID"]);
|
||||
break;
|
||||
case "TIMER":
|
||||
$taskUid = $this->__createTaskByElement(
|
||||
$taskUid = $this->createTaskByElement(
|
||||
$event["EVN_UID"],
|
||||
"bpmnEvent",
|
||||
"start-timer-event"
|
||||
@@ -1240,7 +1240,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$this->mapBpmnEventToWorkflowRoutes($taskUid, $event["EVN_UID"]);
|
||||
break;
|
||||
case "EMPTY":
|
||||
$this->__updateEventActivityDefinition(\BpmnEventPeer::retrieveByPK($event['EVN_UID']), true);
|
||||
$this->updateEventActivityDefinition(\BpmnEventPeer::retrieveByPK($event['EVN_UID']), true);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -2048,7 +2048,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
//Map Bpmn-Flows to Workflow-Routes
|
||||
$bwp->mapBpmnFlowsToWorkflowRoutes();
|
||||
|
||||
$bwp->__gatewayToGatewayDeleteCorruptedRecords(); //Delete corrupted records in task and element_task_relation tables
|
||||
$bwp->gatewayToGatewayDeleteCorruptedRecords(); //Delete corrupted records in task and element_task_relation tables
|
||||
|
||||
//Return
|
||||
return $result;
|
||||
@@ -2071,7 +2071,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$this->wp->setDisabled($value);
|
||||
}
|
||||
|
||||
private function __updateWebEntryEventByEvent($eventUid, array $arrayData = null)
|
||||
private function updateWebEntryEventByEvent($eventUid, array $arrayData = null)
|
||||
{
|
||||
try {
|
||||
$bpmnEvent = \BpmnEventPeer::retrieveByPK($eventUid);
|
||||
@@ -2145,7 +2145,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
return $diagram;
|
||||
}
|
||||
|
||||
private function __gatewayToGatewayDeleteCorruptedRecords()
|
||||
private function gatewayToGatewayDeleteCorruptedRecords()
|
||||
{
|
||||
//Delete corrupted records in task and element_task_relation tables
|
||||
|
||||
|
||||
@@ -1594,7 +1594,7 @@ class Bpmn extends Handler
|
||||
}
|
||||
}
|
||||
|
||||
private function __getElementsBetweenElementOriginAndElementDest(
|
||||
private function getElementsBetweenElementOriginAndElementDestPriv(
|
||||
$elementOriginUid,
|
||||
$elementOriginType,
|
||||
$elementDestUid,
|
||||
@@ -1632,7 +1632,7 @@ class Bpmn extends Handler
|
||||
foreach ($arrayFlow as $value) {
|
||||
$arrayFlowData = $value->toArray();
|
||||
|
||||
$arrayEvent = $this->__getElementsBetweenElementOriginAndElementDest(
|
||||
$arrayEvent = $this->getElementsBetweenElementOriginAndElementDestPriv(
|
||||
$arrayFlowData["FLO_ELEMENT_DEST"],
|
||||
$arrayFlowData["FLO_ELEMENT_DEST_TYPE"],
|
||||
$elementDestUid,
|
||||
@@ -1668,7 +1668,7 @@ class Bpmn extends Handler
|
||||
$this->arrayElementOriginChecked = [];
|
||||
|
||||
//Return
|
||||
return call_user_func_array([$this, "__getElementsBetweenElementOriginAndElementDest"], array_merge(func_get_args(), [0]));
|
||||
return call_user_func_array([$this, "getElementsBetweenElementOriginAndElementDestPriv"], array_merge(func_get_args(), [0]));
|
||||
} catch (\Exception $e) {
|
||||
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user