Skip to content
Snippets Groups Projects
Verified Commit d6bf7734 authored by Damien's avatar Damien
Browse files

FEAT #14564 TIME 0:30 Control workflow modes

parent 1c171f9f
No related branches found
No related tags found
No related merge requests found
......@@ -14,6 +14,7 @@
namespace Workflow\controllers;
use Document\controllers\DocumentController;
use Group\controllers\PrivilegeController;
use History\controllers\HistoryController;
use Respect\Validation\Validator;
......@@ -147,7 +148,6 @@ class WorkflowTemplateController
ValidatorModel::notEmpty($args, ['items']);
ValidatorModel::arrayType($args, ['items']);
//TODO check mode + signature mode
foreach ($args['items'] as $key => $item) {
if (empty($item['userId'])) {
return ['errors' => "Item[{$key}] userId is empty"];
......@@ -157,10 +157,17 @@ class WorkflowTemplateController
return ['errors' => "Item[{$key}] signatureMode is empty"];
}
$user = UserModel::getById(['id' => $item['userId'], 'select' => [1]]);
if (!in_array($item['mode'], DocumentController::MODES)) {
return ['errors' => "Item[{$key}] mode is not valid"];
}
$user = UserModel::getById(['id' => $item['userId'], 'select' => ['signature_modes']]);
if (empty($user)) {
return ['errors' => 'User is not valid'];
}
$user['signature_modes'] = json_decode($user['signature_modes'], true);
if (!in_array($item['signatureMode'], $user['signature_modes'])) {
return ['errors' => "Item[{$key}] signatureMode is not valid"];
}
}
return true;
......
......@@ -26,12 +26,12 @@ class WorkflowTemplateControllerTest extends TestCase
[
'userId' => 1,
'mode' => 'visa',
'signatureMode' => 'standard'
'signatureMode' => 'stamp'
],
[
'userId' => 3,
'mode' => 'sign',
'signatureMode' => 'standard'
'signatureMode' => 'stamp'
]
]
];
......@@ -93,11 +93,11 @@ class WorkflowTemplateControllerTest extends TestCase
$this->assertSame(1, $responseBody['workflowTemplate']['items'][0]['userId']);
$this->assertNotEmpty($responseBody['workflowTemplate']['items'][0]['userLabel']);
$this->assertSame('visa', $responseBody['workflowTemplate']['items'][0]['mode']);
$this->assertSame('standard', $responseBody['workflowTemplate']['items'][0]['signatureMode']);
$this->assertSame('stamp', $responseBody['workflowTemplate']['items'][0]['signatureMode']);
$this->assertSame(3, $responseBody['workflowTemplate']['items'][1]['userId']);
$this->assertNotEmpty($responseBody['workflowTemplate']['items'][1]['userLabel']);
$this->assertSame('sign', $responseBody['workflowTemplate']['items'][1]['mode']);
$this->assertSame('standard', $responseBody['workflowTemplate']['items'][1]['signatureMode']);
$this->assertSame('stamp', $responseBody['workflowTemplate']['items'][1]['signatureMode']);
//ERRORS
$previousUserId = $GLOBALS['id'];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment