From 91c769632cac7a320c7c746c65cc8473b3a80c48 Mon Sep 17 00:00:00 2001 From: Joseph AKEL <joseph.akel@maarch.org> Date: Tue, 29 Aug 2023 15:17:11 +0200 Subject: [PATCH] FIX #25949_revert TIME 00:15 Revert branch because not a feature --- .../controllers/MaarchParapheurController.php | 34 ++++++------------- .../user/user-administration.component.ts | 6 +--- .../maarch-parapheur.service.ts | 4 +-- 3 files changed, 12 insertions(+), 32 deletions(-) diff --git a/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php b/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php index 689e2c38767..d5bbba70606 100755 --- a/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php +++ b/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php @@ -1013,10 +1013,6 @@ class MaarchParapheurController $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'modules/visa/xml/remoteSignatoryBooks.xml']); if ($loadedXml->signatoryBookEnabled == 'maarchParapheur') { - $url = null; - $userId = null; - $password = null; - foreach ($loadedXml->signatoryBook as $value) { if ($value->id == "maarchParapheur") { $url = $value->url; @@ -1026,33 +1022,23 @@ class MaarchParapheurController } } - if (empty($url) || empty($userId) || empty($password)) { - return $response->withStatus(400)->withJson(['errors' => 'Could not get remote signatory book configuration. Please check your configuration file.']); - } - - $userInfo = UserModel::getById(['select' => ['external_id'], 'id' => $aArgs['id']]); - $userExternalIds = json_decode($userInfo['external_id'] ?? '{}', true); + $userInfo = UserModel::getById(['select' => ['external_id->\'maarchParapheur\' as external_id'], 'id' => $aArgs['id']]); - if (empty($userExternalIds['maarchParapheur'])) { + if (!empty($userInfo['external_id'])) { + $curlResponse = CurlModel::exec([ + 'url' => rtrim($url, '/') . '/rest/users/'.$userInfo['external_id'], + 'basicAuth' => ['user' => $userId, 'password' => $password], + 'headers' => ['content-type:application/json'], + 'method' => 'GET' + ]); + } else { return $response->withStatus(400)->withJson(['errors' => 'User does not have Maarch Parapheur Id']); } - $curlResponse = CurlModel::exec([ - 'url' => rtrim($url, '/') . '/rest/users/' . $userExternalIds['maarchParapheur'], - 'basicAuth' => ['user' => $userId, 'password' => $password], - 'headers' => ['content-type:application/json'], - 'method' => 'GET' - ]); - $errors = ''; if ($curlResponse['code'] != '200') { if (!empty($curlResponse['response']['errors'])) { $errors = $curlResponse['response']['errors']; - - if ($curlResponse['code'] == 400) { - unset($userExternalIds['maarchParapheur']); - UserModel::updateExternalId(['id' => $aArgs['id'], 'externalId' => json_encode($userExternalIds)]); - } } else { $errors = $curlResponse['errors']; } @@ -1062,7 +1048,7 @@ class MaarchParapheurController } if (empty($curlResponse['response']['user'])) { - return $response->withStatus(400)->withJson(['errors' => $errors, 'lang' => 'maarchParapheurLinkbroken']); + return $response->withJson(['link' => '', 'errors' => $errors]); } } else { return $response->withStatus(403)->withJson(['errors' => 'maarchParapheur is not enabled']); diff --git a/src/frontend/app/administration/user/user-administration.component.ts b/src/frontend/app/administration/user/user-administration.component.ts index 88021f9cb08..477d07bbde2 100755 --- a/src/frontend/app/administration/user/user-administration.component.ts +++ b/src/frontend/app/administration/user/user-administration.component.ts @@ -240,10 +240,6 @@ export class UserAdministrationComponent implements OnInit { } else { this.externalSignatoryBookConnectionStatus = false; } - } else { - this.user.canLinkToExternalSignatoryBook = true; - this.externalSignatoryBookConnectionStatus = false; - this.loading = false; } } @@ -271,7 +267,7 @@ export class UserAdministrationComponent implements OnInit { async linkAccountToSignatoryBook(result: any) { const data: any = await this.externalSignatoryBook.linkAccountToSignatoryBook(result, this.serialId); - if (data) { + if (!this.functions.empty(data)) { this.user.canLinkToExternalSignatoryBook = false; this.user.external_id[this.externalSignatoryBook.signatoryBookEnabled] = result.id; this.checkInfoExternalSignatoryBookAccount(); diff --git a/src/frontend/service/externalSignatoryBook/maarch-parapheur.service.ts b/src/frontend/service/externalSignatoryBook/maarch-parapheur.service.ts index 88fbf1b7c26..31f3257083d 100644 --- a/src/frontend/service/externalSignatoryBook/maarch-parapheur.service.ts +++ b/src/frontend/service/externalSignatoryBook/maarch-parapheur.service.ts @@ -171,9 +171,7 @@ export class MaarchParapheurService { }), catchError((err: any) => { if (err.error.errors === 'Login already exists') { - this.notify.handleSoftErrors(this.translate.instant('lang.loginAlreadyExistsInMaarchParapheur')); - } else if (err.error.errors === 'Privilege forbidden') { - this.notify.handleSoftErrors(this.translate.instant('lang.insufficientPrivilege')); + this.translate.instant('lang.loginAlreadyExistsInMaarchParapheur'); } else { this.notify.handleSoftErrors(err); } -- GitLab