diff --git a/rest/index.php b/rest/index.php index 0730374032b9ec80b10aeb13050f5629888999a7..4a723e49a0d217eca9355408d0d4b8e3e0767bd2 100755 --- a/rest/index.php +++ b/rest/index.php @@ -78,6 +78,7 @@ $app->get('/res/{resIdMaster}/attachments/{resId}/thumbnail', \Attachment\contro //AutoComplete $app->get('/autocomplete/contacts', \SrcCore\controllers\AutoCompleteController::class . ':getContacts'); $app->get('/autocomplete/users', \SrcCore\controllers\AutoCompleteController::class . ':getUsers'); +$app->get('/autocomplete/maarchParapheurUsers', \SrcCore\controllers\AutoCompleteController::class . ':getMaarchParapheurUsers'); $app->get('/autocomplete/contactsUsers', \SrcCore\controllers\AutoCompleteController::class . ':getContactsAndUsers'); $app->get('/autocomplete/contacts/groups', \SrcCore\controllers\AutoCompleteController::class . ':getContactsForGroups'); $app->get('/autocomplete/users/administration', \SrcCore\controllers\AutoCompleteController::class . ':getUsersForAdministration'); diff --git a/src/app/action/controllers/PreProcessActionController.php b/src/app/action/controllers/PreProcessActionController.php index 70c58cae14c68775e20e01556c4d901d4b77a2e1..7ff4bd6fa09f7d4ce70c7ea16670638ae8ad23fc 100755 --- a/src/app/action/controllers/PreProcessActionController.php +++ b/src/app/action/controllers/PreProcessActionController.php @@ -427,16 +427,6 @@ class PreProcessActionController } elseif ($signatureBookEnabled == 'fastParapheur') { // TODO } elseif ($signatureBookEnabled == 'maarchParapheur') { - $userList = MaarchParapheurController::getInitializeDatas(['config' => $config]); - if (!empty($userList['users'])) { - $additionalsInfos['users'] = $userList['users']; - } else { - $additionalsInfos['users'] = []; - } - if (!empty($userList['errors'])) { - $errors[] = $userList['errors']; - } - if (is_array($data['resources']) && count($data['resources']) == 1) { $resDestination = ResModel::getById([ 'select' => ['entities.id'], diff --git a/src/core/controllers/AutoCompleteController.php b/src/core/controllers/AutoCompleteController.php index 63b0b3010deccd38f55ee2c8783ac63c58f89274..e9624c9a0cd09679fadb3f74bf0d7c25847ac33c 100755 --- a/src/core/controllers/AutoCompleteController.php +++ b/src/core/controllers/AutoCompleteController.php @@ -115,6 +115,54 @@ class AutoCompleteController return $response->withJson($data); } + public static function getMaarchParapheurUsers(Request $request, Response $response) + { + $data = $request->getQueryParams(); + $check = Validator::stringType()->notEmpty()->validate($data['search']); + if (!$check) { + return $response->withStatus(400)->withJson(['errors' => 'Bad Request']); + } + + $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'modules/visa/xml/remoteSignatoryBooks.xml']); + + if ($loadedXml->signatoryBookEnabled == 'maarchParapheur') { + foreach ($loadedXml->signatoryBook as $value) { + if ($value->id == "maarchParapheur") { + $url = $value->url; + $userId = $value->userId; + $password = $value->password; + break; + } + } + + $bodyData = [ + "search" => $data['search'] + ]; + $curlResponse = CurlModel::execSimple([ + 'url' => rtrim($url, '/') . '/rest/autocomplete/users', + 'basicAuth' => ['user' => $userId, 'password' => $password], + 'headers' => ['content-type:application/json'], + 'method' => 'POST', + 'body' => json_encode($bodyData) + ]); + + if ($curlResponse['code'] != '200') { + if (!empty($curlResponse['response']['errors'])) { + $errors = $curlResponse['response']['errors']; + } else { + $errors = $curlResponse['errors']; + } + if (empty($errors)) { + $errors = 'An error occured. Please check your configuration file.'; + } + return $response->withStatus(400)->withJson(['errors' => $errors]); + } + return $response->withJson($curlResponse['response']); + } else { + return $response->withStatus(403)->withJson(['errors' => 'maarchParapheur is not enabled']); + } + } + public static function getContactsAndUsers(Request $request, Response $response) { $data = $request->getQueryParams();