diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php index 486322ef9446a1ade1107343eb42672e9b35d114..fddc3cec5e02a7cf819bc129ab1215c12114a4a3 100755 --- a/src/app/user/controllers/UserController.php +++ b/src/app/user/controllers/UserController.php @@ -183,7 +183,7 @@ class UserController return $response->withStatus(400)->withJson(['errors' => 'Body email is empty or not a valid email']); } - $user = UserModel::getById(['id' => $args['id'], 'select' => [1]]); + $user = UserModel::getById(['id' => $args['id'], 'select' => ['signature_modes']]); if (empty($user)) { return $response->withStatus(400)->withJson(['errors' => 'User does not exist']); } @@ -205,19 +205,27 @@ class UserController $modes[] = $signatureMode; } } - $set['signature_modes'] = $modes; + $validModes = CoreConfigModel::getSignatureModes(); + $higherMode = 'stamp'; + foreach ($validModes as $validMode) { + if (in_array($validMode['id'], $modes)) { + $higherMode = $validMode['id']; + break; + } + } + WorkflowModel::update([ - 'set' => ['signature_mode' => 'stamp'], + 'set' => ['signature_mode' => $higherMode], 'where' => ['user_id = ?', 'signature_mode not in (?)', 'process_date is null', 'signature_mode != ?'], - 'data' => [$args['id'], $body['signatureModes'], 'stamp'] + 'data' => [$args['id'], $modes, $higherMode] ]); WorkflowTemplateItemModel::update([ - 'set' => ['signature_mode' => 'stamp'], + 'set' => ['signature_mode' => $higherMode], 'where' => ['user_id = ?', 'signature_mode not in (?)', 'signature_mode != ?'], - 'data' => [$args['id'], $body['signatureModes'], 'stamp'] + 'data' => [$args['id'], $modes, $higherMode] ]); - $set['signature_modes'] = $body['signatureModes']; + $set['signature_modes'] = $modes; } $set['signature_modes'] = json_encode($set['signature_modes']); diff --git a/src/app/workflow/controllers/WorkflowTemplateController.php b/src/app/workflow/controllers/WorkflowTemplateController.php index c00cf75001d6451b42b905ef1c1de1ec0d2931ab..1b25f569debdd17551ff6c7d631f136af96abb99 100755 --- a/src/app/workflow/controllers/WorkflowTemplateController.php +++ b/src/app/workflow/controllers/WorkflowTemplateController.php @@ -57,14 +57,23 @@ class WorkflowTemplateController $workflowTemplatesUsers = []; foreach ($rawWorkflowTemplatesUsers as $value) { $user = UserModel::getById(['id' => $value['user_id'], 'select' => ['signature_modes']]); + $user['signature_modes'] = json_decode($user['signature_modes'], true); + + $higherMode = 'stamp'; + foreach ($validSignatureModes as $validMode) { + if (in_array($validMode, $user['signature_modes'])) { + $higherMode = $validMode['id']; + break; + } + } $workflowTemplatesUsers[] = [ 'userId' => $value['user_id'], 'userLabel' => UserModel::getLabelledUserById(['id' => $value['user_id']]), 'mode' => $value['mode'], - 'signatureMode' => in_array($value['signature_mode'], $validSignatureModes) ? $value['signature_mode'] : 'stamp', + 'signatureMode' => in_array($value['signature_mode'], $validSignatureModes) ? $value['signature_mode'] : $higherMode, 'order' => $value['order'], - 'userSignatureModes' => array_intersect(json_decode($user['signature_modes'], true), $validSignatureModes) + 'userSignatureModes' => array_intersect($user['signature_modes'], $validSignatureModes) ]; }