PMCORE-1337

This commit is contained in:
Paula Quispe
2021-03-24 09:31:35 -04:00
parent de06c121c8
commit 70086becdc
7 changed files with 317 additions and 86 deletions

View File

@@ -1,7 +1,5 @@
<?php <?php
/**
* Model factory for a process
*/
use Faker\Generator as Faker; use Faker\Generator as Faker;
$factory->define(\ProcessMaker\Model\TaskUser::class, function(Faker $faker) { $factory->define(\ProcessMaker\Model\TaskUser::class, function(Faker $faker) {
@@ -13,4 +11,60 @@ $factory->define(\ProcessMaker\Model\TaskUser::class, function(Faker $faker) {
'TU_TYPE' => 1, 'TU_TYPE' => 1,
'TU_RELATION' => 1 'TU_RELATION' => 1
]; ];
});
// Create a delegation with the foreign keys
$factory->state(\ProcessMaker\Model\TaskUser::class, 'foreign_keys', function (Faker $faker) {
$user = factory(\ProcessMaker\Model\User::class)->create();
$task = factory(\ProcessMaker\Model\Task::class)->create();
return [
'TAS_UID' => $task->TAS_UID,
'USR_UID' => $user->USR_UID,
'TU_TYPE' => 1,
'TU_RELATION' => 1
];
});
$factory->state(\ProcessMaker\Model\TaskUser::class, 'normal_assigment_user', function (Faker $faker) {
$user = factory(\ProcessMaker\Model\User::class)->create();
$task = factory(\ProcessMaker\Model\Task::class)->create();
return [
'TAS_UID' => $task->TAS_UID,
'USR_UID' => $user->USR_UID,
'TU_RELATION' => 1,
'TU_TYPE' => 1,
];
});
$factory->state(\ProcessMaker\Model\TaskUser::class, 'normal_assigment_group', function (Faker $faker) {
$group = factory(\ProcessMaker\Model\Groupwf::class)->create();
$task = factory(\ProcessMaker\Model\Task::class)->create();
return [
'TAS_UID' => $task->TAS_UID,
'USR_UID' => $group->GRP_UID,
'TU_RELATION' => 2,
'TU_TYPE' => 1,
];
});
$factory->state(\ProcessMaker\Model\TaskUser::class, 'adhoc_assigment_user', function (Faker $faker) {
$user = factory(\ProcessMaker\Model\User::class)->create();
$task = factory(\ProcessMaker\Model\Task::class)->create();
return [
'TAS_UID' => $task->TAS_UID,
'USR_UID' => $user->USR_UID,
'TU_RELATION' => 1,
'TU_TYPE' => 2,
];
});
$factory->state(\ProcessMaker\Model\TaskUser::class, 'adhoc_assigment_group', function (Faker $faker) {
$group = factory(\ProcessMaker\Model\Groupwf::class)->create();
$task = factory(\ProcessMaker\Model\Task::class)->create();
return [
'TAS_UID' => $task->TAS_UID,
'USR_UID' => $group->GRP_UID,
'TU_RELATION' => 2,
'TU_TYPE' => 2,
];
}); });

View File

@@ -0,0 +1,100 @@
<?php
namespace Tests\unit\workflow\engine\src\ProcessMaker\Model;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use ProcessMaker\Model\Task;
use ProcessMaker\Model\TaskUser;
use ProcessMaker\Model\User;
use Tests\TestCase;
/**
* Class TaskUserTest
*
* @coversDefaultClass \ProcessMaker\Model\TaskUser
*/
class TaskUserTest extends TestCase
{
use DatabaseTransactions;
/**
* Create task assigment
*
* @param string $type
* @param string $relation
*
* @return array
*/
public function createAssigment($type = 'NORMAL', $relation = 'USER')
{
if ($type === 'NORMAL'){
if ($relation === 'USER'){
$assigment = factory(TaskUser::class)->states('normal_assigment_user')->create();
} else {
$assigment = factory(TaskUser::class)->states('normal_assigment_group')->create();
}
} else {
if ($relation === 'USER'){
$assigment = factory(TaskUser::class)->states('adhoc_assigment_user')->create();
} else {
$assigment = factory(TaskUser::class)->states('adhoc_assigment_group')->create();
}
}
return $assigment;
}
/**
* Test belongs to TAS_UID
*
* @covers \ProcessMaker\Model\TaskUser::task()
* @test
*/
public function it_has_a_task()
{
$assigment = factory(TaskUser::class)->create([
'TAS_UID' => function () {
return factory(Task::class)->create()->TAS_UID;
}
]);
$this->assertInstanceOf(Task::class, $assigment->task);
}
/**
* Test belongs to USR_UID
*
* @covers \ProcessMaker\Model\TaskUser::user()
* @test
*/
public function it_has_a_user()
{
$assigment = factory(TaskUser::class)->create([
'USR_UID' => function () {
return factory(User::class)->create()->USR_UID;
}
]);
$this->assertInstanceOf(User::class, $assigment->user);
}
/**
* Test the assigment in the task
*
* @covers \ProcessMaker\Model\TaskUser::scopeAssigment()
* @covers \ProcessMaker\Model\TaskUser::getAssigment()
* @test
*/
public function it_has_an_assigment()
{
// Create factory
$assigment = $this->createAssigment();
// Create the TaskUser object
$taskUser = new TaskUser();
$response = $taskUser->getAssigment($assigment->TAS_UID, $assigment->USR_UID);
$this->assertNotEmpty($response);
// Create factory
$assigment = $this->createAssigment('NORMAL', 'GROUP');
// Create the TaskUser object
$taskUser = new TaskUser();
$response = $taskUser->getAssigment($assigment->TAS_UID, $assigment->USR_UID);
$this->assertNotEmpty($response);
}
}

View File

@@ -1,10 +1,14 @@
<?php <?php
namespace ProcessMaker\BusinessModel; namespace ProcessMaker\BusinessModel;
use \G; use Exception;
use G;
use ProcessMaker\Model\Groupwf;
use ProcessMaker\Model\TaskUser;
use ProcessMaker\Model\User;
use ProcessMaker\Plugins\Interfaces\StepDetail; use ProcessMaker\Plugins\Interfaces\StepDetail;
use ProcessMaker\Plugins\PluginRegistry; use ProcessMaker\Plugins\PluginRegistry;
use \ProcessMaker\Util; use ProcessMaker\Util;
class Task class Task
{ {
@@ -1245,68 +1249,49 @@ class Task
/** /**
* Assign a user or group to an activity * Assign a user or group to an activity
* *
* @param string $sProcessUID {@min 32} {@max 32} * @param string $proUid {@min 32} {@max 32}
* @param string $sTaskUID {@min 32} {@max 32} * @param string $tasUid {@min 32} {@max 32}
* @param string $sAssigneeUID {@min 32} {@max 32} * @param string $uid {@min 32} {@max 32}
* @param string $assType {@choice user,group} * @param string $type {@choice user,group}
* *
* return array * @return array
* *
* @access public * @access public
*/ */
public function addTaskAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $assType) public function addTaskAssignee($proUid, $tasUid, $uid, $type)
{ {
try { try {
Validator::proUid($sProcessUID, '$prj_uid'); Validator::proUid($proUid, '$prj_uid');
$this->validateActUid($sTaskUID); $this->validateActUid($tasUid);
$iType = 1; $taskUser = new TaskUser();
$iRelation = ''; $response = $taskUser->getAssigment($tasUid, $uid);
$oCriteria = new \Criteria('workflow'); if (!empty($response)) {
$oCriteria->addSelectColumn( \TaskUserPeer::TU_RELATION ); throw new Exception(G::LoadTranslation("ID_ALREADY_ASSIGNED", [$uid, $tasUid]));
$oCriteria->add(\TaskUserPeer::USR_UID, $sAssigneeUID );
$oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID );
$oCriteria->add(\TaskUserPeer::TU_TYPE, $iType );
$oTaskUser = \TaskUserPeer::doSelectRS( $oCriteria );
$oTaskUser->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($oTaskUser->next()) {
$aRow = $oTaskUser->getRow();
$iRelation = $aRow['TU_RELATION'];
}
$oTaskUser = \TaskUserPeer::retrieveByPK( $sTaskUID, $sAssigneeUID, $iType, $iRelation );
if (! is_null( $oTaskUser )) {
throw new \Exception(\G::LoadTranslation("ID_ALREADY_ASSIGNED", array($sAssigneeUID, $sTaskUID)));
} else { } else {
$oTypeAssigneeG = \GroupwfPeer::retrieveByPK( $sAssigneeUID ); $groupUid = Groupwf::query()->select()->group($uid)->get()->toArray();
$oTypeAssigneeU = \UsersPeer::retrieveByPK( $sAssigneeUID ); $userUid = User::query()->select()->user($uid)->get()->toArray();
if (is_null( $oTypeAssigneeG ) && is_null( $oTypeAssigneeU ) ) { if (empty($groupUid) && empty($userUid)) {
throw new \Exception(\G::LoadTranslation("ID_DOES_NOT_CORRESPOND", array($sAssigneeUID, $assType))); throw new Exception(G::LoadTranslation("ID_DOES_NOT_CORRESPOND", [$uid, $type]));
} }
if (is_null( $oTypeAssigneeG ) && ! is_null( $oTypeAssigneeU) ) { if (empty($groupUid) && !empty($userUid) && $type !== "user") {
$type = "user"; throw new Exception(G::LoadTranslation("ID_DOES_NOT_CORRESPOND", [$uid, $type]));
if ( $type != $assType ) {
throw new \Exception(\G::LoadTranslation("ID_DOES_NOT_CORRESPOND", array($sAssigneeUID, $assType)));
}
} }
if (! is_null( $oTypeAssigneeG ) && is_null( $oTypeAssigneeU ) ) { if (!empty($groupUid) && empty($userUid) && $type !== "group") {
$type = "group"; throw new Exception(G::LoadTranslation("ID_DOES_NOT_CORRESPOND", [$uid, $type]));
if ( $type != $assType ) {
throw new \Exception(\G::LoadTranslation("ID_DOES_NOT_CORRESPOND", array($sAssigneeUID, $assType)));
}
}
$oTaskUser = new \TaskUser();
if ( $assType == "user" ) {
$oTaskUser->create(array('TAS_UID' => $sTaskUID,
'USR_UID' => $sAssigneeUID,
'TU_TYPE' => $iType,
'TU_RELATION' => 1));
} else {
$oTaskUser->create(array('TAS_UID' => $sTaskUID,
'USR_UID' => $sAssigneeUID,
'TU_TYPE' => $iType,
'TU_RELATION' => 2));
} }
// Register the assigment
$attributes = [
'TAS_UID' => $tasUid,
'USR_UID' => $uid,
'TU_TYPE' => 1,
'TU_RELATION' => ($type === "user") ? 1 : 2
];
$assigment = TaskUser::create($attributes);
// Register the action in audit log
$assignTask = ($type === "user") ? 'AssignUserTask' : 'AssignGroupTask';
G::auditlog($assignTask, 'Assign ' . $type . ' to Task -> ' . $tasUid . ',' . $type . ' Uid -> ' . $uid);
} }
} catch ( \Exception $e ) { } catch (Exception $e) {
throw $e; throw $e;
} }
} }

View File

@@ -29,16 +29,21 @@ class AuditLog
$this->columns = ['date', 'workspace', 'ip', 'id', 'user', 'action', 'description']; $this->columns = ['date', 'workspace', 'ip', 'id', 'user', 'action', 'description'];
$this->actions = [ $this->actions = [
// User
"CreateUser" => G::LoadTranslation("ID_CREATE_USER"), "CreateUser" => G::LoadTranslation("ID_CREATE_USER"),
"UpdateUser" => G::LoadTranslation("ID_UPDATE_USER"), "UpdateUser" => G::LoadTranslation("ID_UPDATE_USER"),
"DeleteUser" => G::LoadTranslation("ID_DELETE_USER"), "DeleteUser" => G::LoadTranslation("ID_DELETE_USER"),
"EnableUser" => G::LoadTranslation("ID_ENABLE_USER"), "EnableUser" => G::LoadTranslation("ID_ENABLE_USER"),
"DisableUser" => G::LoadTranslation("ID_DISABLE_USER"), "DisableUser" => G::LoadTranslation("ID_DISABLE_USER"),
"AssignAuthenticationSource" => G::LoadTranslation("ID_ASSIGN_AUTHENTICATION_SOURCE"),
"AssignUserToGroup" => G::LoadTranslation("ID_ASSIGN_USER_TO_GROUP"), "AssignUserToGroup" => G::LoadTranslation("ID_ASSIGN_USER_TO_GROUP"),
"RemoveUser" => G::LoadTranslation("ID_REMOVE_USER"),
// Authentication
"AssignAuthenticationSource" => G::LoadTranslation("ID_ASSIGN_AUTHENTICATION_SOURCE"),
"CreateAuthSource" => G::LoadTranslation("ID_CREATE_AUTH_SOURCE"), "CreateAuthSource" => G::LoadTranslation("ID_CREATE_AUTH_SOURCE"),
"UpdateAuthSource" => G::LoadTranslation("ID_UPDATE_AUTH_SOURCE"), "UpdateAuthSource" => G::LoadTranslation("ID_UPDATE_AUTH_SOURCE"),
"DeleteAuthSource" => G::LoadTranslation("ID_DELETE_AUTH_SOURCE"), "DeleteAuthSource" => G::LoadTranslation("ID_DELETE_AUTH_SOURCE"),
// Role
"AssignRole" => G::LoadTranslation("ID_ASSIGN_ROLE"),
"CreateRole" => G::LoadTranslation("ID_CREATE_ROLE"), "CreateRole" => G::LoadTranslation("ID_CREATE_ROLE"),
"UpdateRole" => G::LoadTranslation("ID_UPDATE_ROLE"), "UpdateRole" => G::LoadTranslation("ID_UPDATE_ROLE"),
"DeleteRole" => G::LoadTranslation("ID_DELETE_ROLE"), "DeleteRole" => G::LoadTranslation("ID_DELETE_ROLE"),
@@ -46,70 +51,83 @@ class AuditLog
"DeleteUserToRole" => G::LoadTranslation("ID_DELETE_USER_TO_ROLE"), "DeleteUserToRole" => G::LoadTranslation("ID_DELETE_USER_TO_ROLE"),
"AddPermissionToRole" => G::LoadTranslation("ID_ADD_PERMISSION_TO_ROLE"), "AddPermissionToRole" => G::LoadTranslation("ID_ADD_PERMISSION_TO_ROLE"),
"DeletePermissionToRole" => G::LoadTranslation("ID_DELETE_PERMISSION_TO_ROLE"), "DeletePermissionToRole" => G::LoadTranslation("ID_DELETE_PERMISSION_TO_ROLE"),
// Skin
"CreateSkin" => G::LoadTranslation("ID_CREATE_SKIN"), "CreateSkin" => G::LoadTranslation("ID_CREATE_SKIN"),
"ImportSkin" => G::LoadTranslation("ID_IMPORT_SKIN"), "ImportSkin" => G::LoadTranslation("ID_IMPORT_SKIN"),
"ExportSkin" => G::LoadTranslation("ID_EXPORT_SKIN"), "ExportSkin" => G::LoadTranslation("ID_EXPORT_SKIN"),
"DeleteSkin" => G::LoadTranslation("ID_DELETE_SKIN"), "DeleteSkin" => G::LoadTranslation("ID_DELETE_SKIN"),
// Group
"CreateGroup" => G::LoadTranslation("ID_CREATE_GROUP"), "CreateGroup" => G::LoadTranslation("ID_CREATE_GROUP"),
"UpdateGroup" => G::LoadTranslation("ID_UPDATE_GROUP"), "UpdateGroup" => G::LoadTranslation("ID_UPDATE_GROUP"),
"DeleteGroup" => G::LoadTranslation("ID_DELETE_GROUP"), "DeleteGroup" => G::LoadTranslation("ID_DELETE_GROUP"),
// Category
"CreateCategory" => G::LoadTranslation("ID_CREATE_CATEGORY"), "CreateCategory" => G::LoadTranslation("ID_CREATE_CATEGORY"),
"UpdateCategory" => G::LoadTranslation("ID_UPDATE_CATEGORY"), "UpdateCategory" => G::LoadTranslation("ID_UPDATE_CATEGORY"),
"DeleteCategory" => G::LoadTranslation("ID_DELETE_CATEGORY"), "DeleteCategory" => G::LoadTranslation("ID_DELETE_CATEGORY"),
// Cache
"BuildCache" => G::LoadTranslation("ID_BUILD_CACHE"), "BuildCache" => G::LoadTranslation("ID_BUILD_CACHE"),
"ClearCache" => G::LoadTranslation("ID_CLEAR_CACHE"), "ClearCache" => G::LoadTranslation("ID_CLEAR_CACHE"),
// Cron
"ClearCron" => G::LoadTranslation("ID_CLEAR_CRON"), "ClearCron" => G::LoadTranslation("ID_CLEAR_CRON"),
"UpdateEnvironmentSettings" => G::LoadTranslation("ID_UPDATE_ENVIRONMENT_SETTINGS"), "UpdateEnvironmentSettings" => G::LoadTranslation("ID_UPDATE_ENVIRONMENT_SETTINGS"),
"UpdateLoginSettings" => G::LoadTranslation("ID_UPDATE_LOGIN_SETTINGS"), "UpdateLoginSettings" => G::LoadTranslation("ID_UPDATE_LOGIN_SETTINGS"),
"EnableHeartBeat" => G::LoadTranslation("ID_ENABLE_HEART_BEAT"), "EnableHeartBeat" => G::LoadTranslation("ID_ENABLE_HEART_BEAT"),
"DisableHeartBeat" => G::LoadTranslation("ID_DISABLE_HEART_BEAT"), "DisableHeartBeat" => G::LoadTranslation("ID_DISABLE_HEART_BEAT"),
// PmTables
"CreatePmtable" => G::LoadTranslation("ID_CREATE_PMTABLE"), "CreatePmtable" => G::LoadTranslation("ID_CREATE_PMTABLE"),
"UpdatePmtable" => G::LoadTranslation("ID_UPDATE_PMTABLE"), "UpdatePmtable" => G::LoadTranslation("ID_UPDATE_PMTABLE"),
"DeletePmtable" => G::LoadTranslation("ID_DELETE_PMTABLE"), "DeletePmtable" => G::LoadTranslation("ID_DELETE_PMTABLE"),
"AddDataPmtable" => G::LoadTranslation("ID_ADD_DATA_PMTABLE"), "AddDataPmtable" => G::LoadTranslation("ID_ADD_DATA_PMTABLE"),
"UpdateDataPmtable" => G::LoadTranslation("ID_UPDATE_DATA_PMTABLE"), "UpdateDataPmtable" => G::LoadTranslation("ID_UPDATE_DATA_PMTABLE"),
"DeleteDataPmtable" => G::LoadTranslation("ID_DELETE_DATA_PMTABLE"), "DeleteDataPmtable" => G::LoadTranslation("ID_DELETE_DATA_PMTABLE"),
"ImportTable" => G::LoadTranslation("ID_IMPORT_TABLE"), "ImportPmTable" => G::LoadTranslation("ID_IMPORT_TABLE"),
"ExportTable" => G::LoadTranslation("ID_EXPORT_TABLE"), "ExportPmTable" => G::LoadTranslation("ID_EXPORT_TABLE"),
// Calendar
"CreateCalendar" => G::LoadTranslation("ID_CREATE_CALENDAR"), "CreateCalendar" => G::LoadTranslation("ID_CREATE_CALENDAR"),
"UpdateCalendar" => G::LoadTranslation("ID_UPDATE_CALENDAR"), "UpdateCalendar" => G::LoadTranslation("ID_UPDATE_CALENDAR"),
"DeleteCalendar" => G::LoadTranslation("ID_DELETE_CALENDAR"), "DeleteCalendar" => G::LoadTranslation("ID_DELETE_CALENDAR"),
// Dashlet
"CreateDashletInstance" => G::LoadTranslation("ID_CREATE_DASHLET_INSTANCE"), "CreateDashletInstance" => G::LoadTranslation("ID_CREATE_DASHLET_INSTANCE"),
"UpdateDashletInstance" => G::LoadTranslation("ID_UPDATE_DASHLET_INSTANCE"), "UpdateDashletInstance" => G::LoadTranslation("ID_UPDATE_DASHLET_INSTANCE"),
"DeleteDashletInstance" => G::LoadTranslation("ID_DELETE_DASHLET_INSTANCE"), "DeleteDashletInstance" => G::LoadTranslation("ID_DELETE_DASHLET_INSTANCE"),
"CreateDepartament" => G::LoadTranslation("ID_CREATE_DEPARTAMENT"), // Department
"CreateSubDepartament" => G::LoadTranslation("ID_CREATE_SUB_DEPARTAMENT"), "CreateDepartment" => G::LoadTranslation("ID_CREATE_DEPARTAMENT"),
"UpdateDepartament" => G::LoadTranslation("ID_UPDATE_DEPARTAMENT"), "CreateSubDepartment" => G::LoadTranslation("ID_CREATE_SUB_DEPARTAMENT"),
"UpdateSubDepartament" => G::LoadTranslation("ID_UPDATE_SUB_DEPARTAMENT"), "UpdateDepartment" => G::LoadTranslation("ID_UPDATE_DEPARTAMENT"),
"DeleteDepartament" => G::LoadTranslation("ID_DELETE_DEPARTAMENT"), "UpdateSubDepartment" => G::LoadTranslation("ID_UPDATE_SUB_DEPARTAMENT"),
"AssignManagerToDepartament" => G::LoadTranslation("ID_ASSIGN_MANAGER_TO_DEPARTAMENT"), "DeleteDepartment" => G::LoadTranslation("ID_DELETE_DEPARTAMENT"),
"AssignUserToDepartament" => G::LoadTranslation("ID_ASSIGN_USER_TO_DEPARTAMENT"), "AssignManagerToDepartment" => G::LoadTranslation("ID_ASSIGN_MANAGER_TO_DEPARTAMENT"),
"RemoveUsersFromDepartament" => G::LoadTranslation("ID_REMOVE_USERS_FROM_DEPARTAMENT"), "AssignUserToDepartment" => G::LoadTranslation("ID_ASSIGN_USER_TO_DEPARTAMENT"),
"AssignUserToGroup" => G::LoadTranslation("ID_ASSIGN_USER_TO_GROUP"), "RemoveUsersFromDepartment" => G::LoadTranslation("ID_REMOVE_USERS_FROM_DEPARTAMENT"),
// Language
"UploadLanguage" => G::LoadTranslation("ID_UPLOAD_LANGUAGE"), "UploadLanguage" => G::LoadTranslation("ID_UPLOAD_LANGUAGE"),
"ExportLanguage" => G::LoadTranslation("ID_EXPORT_LANGUAGE"), "ExportLanguage" => G::LoadTranslation("ID_EXPORT_LANGUAGE"),
"DeleteLanguage" => G::LoadTranslation("ID_DELETE_LAGUAGE"), "DeleteLanguage" => G::LoadTranslation("ID_DELETE_LAGUAGE"),
// Settings
"UploadSystemSettings" => G::LoadTranslation("ID_UPLOAD_SYSTEM_SETTINGS"), "UploadSystemSettings" => G::LoadTranslation("ID_UPLOAD_SYSTEM_SETTINGS"),
"UpdateEmailSettings" => G::LoadTranslation("ID_UPDATE_EMAIL_SETTINGS"), "UpdateEmailSettings" => G::LoadTranslation("ID_UPDATE_EMAIL_SETTINGS"),
"CreateEmailSettings" => G::LoadTranslation("ID_CREATE_EMAIL_SETTINGS"), "CreateEmailSettings" => G::LoadTranslation("ID_CREATE_EMAIL_SETTINGS"),
// Logo
"UploadLogo" => G::LoadTranslation("ID_UPLOAD_LOGO"), "UploadLogo" => G::LoadTranslation("ID_UPLOAD_LOGO"),
"DeleteLogo" => G::LoadTranslation("ID_DELETE_LOGO"), "DeleteLogo" => G::LoadTranslation("ID_DELETE_LOGO"),
"RestoreLogo" => G::LoadTranslation("ID_RESTORE_LOGO"), "RestoreLogo" => G::LoadTranslation("ID_RESTORE_LOGO"),
"ReplaceLogo" => G::LoadTranslation("ID_REPLACE_LOGO"), "ReplaceLogo" => G::LoadTranslation("ID_REPLACE_LOGO"),
// Plugin
"InstallPlugin" => G::LoadTranslation("ID_INSTALL_PLUGIN"), "InstallPlugin" => G::LoadTranslation("ID_INSTALL_PLUGIN"),
"EnablePlugin" => G::LoadTranslation("ID_ENABLE_PLUGIN"), "EnablePlugin" => G::LoadTranslation("ID_ENABLE_PLUGIN"),
"DisablePlugin" => G::LoadTranslation("ID_DISABLE_PLUGIN"), "DisablePlugin" => G::LoadTranslation("ID_DISABLE_PLUGIN"),
"RemovePlugin" => G::LoadTranslation("ID_REMOVE_PLUGIN"), "RemovePlugin" => G::LoadTranslation("ID_REMOVE_PLUGIN"),
"SetColumns" => G::LoadTranslation("ID_SET_COLUMNS"), // AuditLog
"EnableAuditLog" => G::LoadTranslation("ID_ENABLE_AUDIT_LOG"), "EnableAuditLog" => G::LoadTranslation("ID_ENABLE_AUDIT_LOG"),
"DisableAuditLog" => G::LoadTranslation("ID_DISABLE_AUDIT_LOG"), "DisableAuditLog" => G::LoadTranslation("ID_DISABLE_AUDIT_LOG"),
// Process
"EditProcess" => G::LoadTranslation("ID_EDIT_PROCESS"), "EditProcess" => G::LoadTranslation("ID_EDIT_PROCESS"),
"ExportProcess" => G::LoadTranslation("ID_EXPORT_PROCESS"), "ExportProcess" => G::LoadTranslation("ID_EXPORT_PROCESS"),
"ImportProcess" => G::LoadTranslation("ID_IMPORT_PROCESS"),
"DeleteProcess" => G::LoadTranslation("ID_DELETE_PROCESS"),
// Web entry
"WebEntry" => G::LoadTranslation("ID_WEB_ENTRY"), "WebEntry" => G::LoadTranslation("ID_WEB_ENTRY"),
"AssignRole" => G::LoadTranslation("ID_ASSIGN_ROLE"), // Diagram
"RemoveUser" => G::LoadTranslation("ID_REMOVE_USER"),
"AddTask" => G::LoadTranslation("ID_ADD_TASK"),
"AddSubProcess" => G::LoadTranslation("ID_ADD_SUB_PROCESS"),
"SaveTaskPosition" => G::LoadTranslation("ID_SAVE_TASK_POSITION"), "SaveTaskPosition" => G::LoadTranslation("ID_SAVE_TASK_POSITION"),
"AddHorizontalLine" => G::LoadTranslation("ID_ADD_HORIZONTAL_LINE"), "AddHorizontalLine" => G::LoadTranslation("ID_ADD_HORIZONTAL_LINE"),
"AddVerticalLine" => G::LoadTranslation("ID_ADD_VERTICAL_LINE"), "AddVerticalLine" => G::LoadTranslation("ID_ADD_VERTICAL_LINE"),
@@ -120,60 +138,75 @@ class AuditLog
"UpdateText" => G::LoadTranslation("ID_UPDATE_TEXT"), "UpdateText" => G::LoadTranslation("ID_UPDATE_TEXT"),
"SaveTextPosition" => G::LoadTranslation("ID_SAVE_TEXT_POSITION"), "SaveTextPosition" => G::LoadTranslation("ID_SAVE_TEXT_POSITION"),
"DeleteText" => G::LoadTranslation("ID_DELETE_TEXT"), "DeleteText" => G::LoadTranslation("ID_DELETE_TEXT"),
"EditEvent" => G::LoadTranslation("ID_EDIT_EVENT"),
"DeleteEvent" => G::LoadTranslation("ID_EVENT_DELETED"),
// File Manager
"ProcessFileManager" => G::LoadTranslation("ID_PROCESS_FILE_MANAGER"), "ProcessFileManager" => G::LoadTranslation("ID_PROCESS_FILE_MANAGER"),
// Process Permission
"ProcessPermissions" => G::LoadTranslation("ID_PROCESS_PERMISSIONS"), "ProcessPermissions" => G::LoadTranslation("ID_PROCESS_PERMISSIONS"),
"DeletePermissions" => G::LoadTranslation("ID_DELETE_PERMISSIONS"), "DeletePermissions" => G::LoadTranslation("ID_DELETE_PERMISSIONS"),
// Supervising
"AssignSupervisorDynaform" => G::LoadTranslation("ID_ASSIGN_SUPERVISOR_DYNAFORM"), "AssignSupervisorDynaform" => G::LoadTranslation("ID_ASSIGN_SUPERVISOR_DYNAFORM"),
"RemoveSupervisorDynaform" => G::LoadTranslation("ID_REMOVE_SUPERVISOR_DYNAFORM"), "RemoveSupervisorDynaform" => G::LoadTranslation("ID_REMOVE_SUPERVISOR_DYNAFORM"),
"AssignSupervisorInput" => G::LoadTranslation("ID_ASSIGN_SUPERVISOR_INPUT"), "AssignSupervisorInput" => G::LoadTranslation("ID_ASSIGN_SUPERVISOR_INPUT"),
"RemoveSupervisorInput" => G::LoadTranslation("ID_REMOVE_SUPERVISOR_INPUT"), "RemoveSupervisorInput" => G::LoadTranslation("ID_REMOVE_SUPERVISOR_INPUT"),
// Case Tracker
"CaseTrackers" => G::LoadTranslation("ID_CASE_TRACKERS"), "CaseTrackers" => G::LoadTranslation("ID_CASE_TRACKERS"),
"EditEvent" => G::LoadTranslation("ID_EDIT_EVENT"), // Dynaform
"DeleteEvent" => G::LoadTranslation("ID_EVENT_DELETED"),
"CreateDynaform" => G::LoadTranslation("ID_CREATE_DYNAFORM"), "CreateDynaform" => G::LoadTranslation("ID_CREATE_DYNAFORM"),
"UpdateDynaform" => G::LoadTranslation("ID_UPDATE_DYNAFORM"), "UpdateDynaform" => G::LoadTranslation("ID_UPDATE_DYNAFORM"),
"DeleteDynaform" => G::LoadTranslation("ID_DELETE_DYNAFORM"), "DeleteDynaform" => G::LoadTranslation("ID_DELETE_DYNAFORM"),
"ConditionsEditorDynaform" => G::LoadTranslation("ID_CONDITIONS_EDITOR_DYNAFORM"), "ConditionsEditorDynaform" => G::LoadTranslation("ID_CONDITIONS_EDITOR_DYNAFORM"),
"SetColumns" => G::LoadTranslation("ID_SET_COLUMNS"),
// Case Scheduler
"CreateCaseScheduler" => G::LoadTranslation("ID_CREATE_CASE_SCHEDULER"), "CreateCaseScheduler" => G::LoadTranslation("ID_CREATE_CASE_SCHEDULER"),
"UpdateCaseScheduler" => G::LoadTranslation("ID_UPDATE_CASE_SCHEDULER"), "UpdateCaseScheduler" => G::LoadTranslation("ID_UPDATE_CASE_SCHEDULER"),
"DeleteCaseScheduler" => G::LoadTranslation("ID_DELETE_CASE_SCHEDULER"), "DeleteCaseScheduler" => G::LoadTranslation("ID_DELETE_CASE_SCHEDULER"),
// Database Connection
"CreateDatabaseConnection" => G::LoadTranslation("ID_CREATE_DATABASE_CONNECTION"), "CreateDatabaseConnection" => G::LoadTranslation("ID_CREATE_DATABASE_CONNECTION"),
"UpdateDatabaseConnection" => G::LoadTranslation("ID_UPDATE_DATABASE_CONNECTION"), "UpdateDatabaseConnection" => G::LoadTranslation("ID_UPDATE_DATABASE_CONNECTION"),
"DeleteDatabaseConnection" => G::LoadTranslation("ID_DELETE_DATABASE_CONNECTION"), "DeleteDatabaseConnection" => G::LoadTranslation("ID_DELETE_DATABASE_CONNECTION"),
// Input Document
"CreateInputDocument" => G::LoadTranslation("ID_CREATE_INPUT_DOCUMENT"), "CreateInputDocument" => G::LoadTranslation("ID_CREATE_INPUT_DOCUMENT"),
"UpdateInputDocument" => G::LoadTranslation("ID_UPDATE_INPUT_DOCUMENT"), "UpdateInputDocument" => G::LoadTranslation("ID_UPDATE_INPUT_DOCUMENT"),
"DeleteInputDocument" => G::LoadTranslation("ID_DELETE_INPUT_DOCUMENT"), "DeleteInputDocument" => G::LoadTranslation("ID_DELETE_INPUT_DOCUMENT"),
// Output Document
"CreateOutputDocument" => G::LoadTranslation("ID_CREATE_OUTPUT_DOCUMENT"), "CreateOutputDocument" => G::LoadTranslation("ID_CREATE_OUTPUT_DOCUMENT"),
"UpdateOutputDocument" => G::LoadTranslation("ID_UPDATE_OUTPUT_DOCUMENT"), "UpdateOutputDocument" => G::LoadTranslation("ID_UPDATE_OUTPUT_DOCUMENT"),
"DeleteOutputDocument" => G::LoadTranslation("ID_DELETE_OUTPUT_DOCUMENT"), "DeleteOutputDocument" => G::LoadTranslation("ID_DELETE_OUTPUT_DOCUMENT"),
// Trigger
"CreateTrigger" => G::LoadTranslation("ID_CREATE_TRIGGER"), "CreateTrigger" => G::LoadTranslation("ID_CREATE_TRIGGER"),
"UpdateTrigger" => G::LoadTranslation("ID_UPDATE_TRIGGER"), "UpdateTrigger" => G::LoadTranslation("ID_UPDATE_TRIGGER"),
"DeleteTrigger" => G::LoadTranslation("ID_DELETE_TRIGGER"), "DeleteTrigger" => G::LoadTranslation("ID_DELETE_TRIGGER"),
"DerivationRule" => G::LoadTranslation("ID_DERIVATION_RULE"),
"DeleteTask" => G::LoadTranslation("ID_DELETE_TASK"),
"DeleteSubProcess" => G::LoadTranslation("ID_DELETE_SUB_PROCESS"),
"OptionsMenuTask" => G::LoadTranslation("ID_OPTIONS_MENU_TASK"),
"SaveTaskProperties" => G::LoadTranslation("ID_SAVE_TASK_PROPERTIES"),
"DeleteRoutes" => G::LoadTranslation("ID_DELETE_ROUTES"),
"NewConditionFromStep" => G::LoadTranslation("ID_NEW_CONDITION_FROM_STEP"),
"AssignTrigger" => G::LoadTranslation("ID_ASSIGN_TRIGGER"), "AssignTrigger" => G::LoadTranslation("ID_ASSIGN_TRIGGER"),
"UpTrigger" => G::LoadTranslation("ID_UP_TRIGGER"), "UpTrigger" => G::LoadTranslation("ID_UP_TRIGGER"),
"DownTrigger" => G::LoadTranslation("ID_DOWN_TRIGGER"), "DownTrigger" => G::LoadTranslation("ID_DOWN_TRIGGER"),
"DerivationRule" => G::LoadTranslation("ID_DERIVATION_RULE"),
"OptionsMenuTask" => G::LoadTranslation("ID_OPTIONS_MENU_TASK"),
"DeleteRoutes" => G::LoadTranslation("ID_DELETE_ROUTES"),
// Steps
"NewConditionFromStep" => G::LoadTranslation("ID_NEW_CONDITION_FROM_STEP"),
"StepDelete" => G::LoadTranslation("ID_STEP_DELETE"), "StepDelete" => G::LoadTranslation("ID_STEP_DELETE"),
"StepUp" => G::LoadTranslation("ID_STEP_UP"), "StepUp" => G::LoadTranslation("ID_STEP_UP"),
"StepDown" => G::LoadTranslation("ID_STEP_DOWN"), "StepDown" => G::LoadTranslation("ID_STEP_DOWN"),
"SaveNewStep" => G::LoadTranslation("ID_SAVE_NEW_STEP"), "SaveNewStep" => G::LoadTranslation("ID_SAVE_NEW_STEP"),
// Task
"AddTask" => G::LoadTranslation("ID_ADD_TASK"),
"AddSubProcess" => G::LoadTranslation("ID_ADD_SUB_PROCESS"),
"AssignUserTask" => G::LoadTranslation("ID_ASSIGN_USER_TASK"), "AssignUserTask" => G::LoadTranslation("ID_ASSIGN_USER_TASK"),
"AssignGroupTask" => G::LoadTranslation("ID_ASSIGN_GROUP_TASK"), "AssignGroupTask" => G::LoadTranslation("ID_ASSIGN_GROUP_TASK"),
"DeleteUserTask" => G::LoadTranslation("ID_DELETE_USER_TASK"), "DeleteUserTask" => G::LoadTranslation("ID_DELETE_USER_TASK"),
"DeleteGroupTask" => G::LoadTranslation("ID_DELETE_GROUP_TASK"), "DeleteGroupTask" => G::LoadTranslation("ID_DELETE_GROUP_TASK"),
"ImportProcess" => G::LoadTranslation("ID_IMPORT_PROCESS"), "DeleteTask" => G::LoadTranslation("ID_DELETE_TASK"),
"DeleteProcess" => G::LoadTranslation("ID_DELETE_PROCESS"), "DeleteSubProcess" => G::LoadTranslation("ID_DELETE_SUB_PROCESS"),
"SaveTaskProperties" => G::LoadTranslation("ID_SAVE_TASK_PROPERTIES"),
// GSuite
"GSuiteConfigurationSaved" => G::LoadTranslation("ID_G_SUITE_CONFIGURATION_SAVED"), "GSuiteConfigurationSaved" => G::LoadTranslation("ID_G_SUITE_CONFIGURATION_SAVED"),
"GSuiteConnect" => G::LoadTranslation("ID_G_SUITE_CONNECT"), "GSuiteConnect" => G::LoadTranslation("ID_G_SUITE_CONNECT"),
"GSuiteDisconnect" => G::LoadTranslation("ID_G_SUITE_DISCONNECT"), "GSuiteDisconnect" => G::LoadTranslation("ID_G_SUITE_DISCONNECT"),
"GSuiteLoadGroups" => G::LoadTranslation("ID_G_SUITE_LOAD_GROUPS"), "GSuiteLoadGroups" => G::LoadTranslation("ID_G_SUITE_LOAD_GROUPS"),
"GSuiteSyncUsers" => G::LoadTranslation("ID_G_SUITE_SYNC_USERS"), "GSuiteSyncUsers" => G::LoadTranslation("ID_G_SUITE_SYNC_USERS"),
// Saml
"SamlEnable" => G::LoadTranslation("ID_SAML_ENABLE"), "SamlEnable" => G::LoadTranslation("ID_SAML_ENABLE"),
"SamlProvider" => G::LoadTranslation("ID_SAML_PROVIDER") "SamlProvider" => G::LoadTranslation("ID_SAML_PROVIDER")
]; ];

View File

@@ -29,5 +29,18 @@ class Groupwf extends Model
{ {
return $this->belongsTo(GroupUser::class, 'GRP_ID', 'GRP_ID'); return $this->belongsTo(GroupUser::class, 'GRP_ID', 'GRP_ID');
} }
/**
* Scope for query to get the group uid
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param string $uid
*
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeGroup($query, $uid)
{
return $query->where('GRP_UID', $uid);
}
} }

View File

@@ -10,6 +10,20 @@ class TaskUser extends Model
public $timestamps = false; public $timestamps = false;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'TAS_UID',
'TAS_ID',
'USR_UID',
'TU_TYPE',
'TU_RELATION',
'ASSIGNED_ID',
];
/** /**
* Return the task this belongs to * Return the task this belongs to
*/ */
@@ -26,6 +40,21 @@ class TaskUser extends Model
return $this->belongsTo(User::class, 'USR_UID', 'USR_UID'); return $this->belongsTo(User::class, 'USR_UID', 'USR_UID');
} }
/**
* Scope for query to get the assigment
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param string $tasUid
* @param string $usrUid
* @param integer $type
*
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeAssigment($query, $tasUid, $usrUid, $type = 1)
{
return $query->where('TAS_UID', $tasUid)->where('USR_UID', $usrUid)->where('TU_TYPE', $type);
}
/** /**
* Get the task self services related to the user * Get the task self services related to the user
* *
@@ -69,4 +98,22 @@ class TaskUser extends Model
return $tasks; return $tasks;
} }
/**
* Get the specific assigment related to the task, by default the normal assigment
*
* @param string $tasUid
* @param string $uid
* @param integer $type, can be 1 = Normal or 2 = Ad-hoc
*
* @return array
*/
public static function getAssigment($tasUid, $uid, $type = 1)
{
$query = TaskUser::query()->select()
->assigment($tasUid, $uid, $type);
$result = $query->get()->toArray();
return head($result);
}
} }

View File

@@ -41,8 +41,7 @@ class User extends Model
*/ */
public function scopeUser($query, string $usrUid) public function scopeUser($query, string $usrUid)
{ {
$result = $query->where('USR_UID', '=', $usrUid); return $query->where('USR_UID', '=', $usrUid);
return $result;
} }
/** /**