This commit is contained in:
Paula Quispe
2019-09-16 14:28:33 -04:00
106 changed files with 1629 additions and 72580 deletions

View File

@@ -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) {

View 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;
}

View File

@@ -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);
}
}

View 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;
}

View 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;
}

View 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;
}

View 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;
}

View File

@@ -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

View File

@@ -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());