diff --git a/src/app/workflow/controllers/WorkflowTemplateController.php b/src/app/workflow/controllers/WorkflowTemplateController.php index 12719cb09b4d53a4688b91ea386ae3a6a4c173a1..fb298ffe2c9c872de70c6bdf20f1b992689b05dd 100755 --- a/src/app/workflow/controllers/WorkflowTemplateController.php +++ b/src/app/workflow/controllers/WorkflowTemplateController.php @@ -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; diff --git a/test/unitTests/app/workflow/WorkflowTemplateControllerTest.php b/test/unitTests/app/workflow/WorkflowTemplateControllerTest.php index fb30799951787475d7e247ea2fe996801d3d11fd..2bf80b1925fdd668a4eb678e53de32ad265a61e4 100755 --- a/test/unitTests/app/workflow/WorkflowTemplateControllerTest.php +++ b/test/unitTests/app/workflow/WorkflowTemplateControllerTest.php @@ -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'];