From 7834dfe99a5ab2637321c5d644c50b69dcc70b85 Mon Sep 17 00:00:00 2001 From: Hamza HRAMCHI <hamza.hramchi@xelians.fr> Date: Tue, 14 Feb 2023 11:37:12 +0100 Subject: [PATCH] FIX #20284 TIME 0:20 set subscriber id --- .../controllers/ExternalSignatoryBookController.php | 10 +++++----- src/app/workflow/controllers/FastOTPController.php | 7 +++---- src/frontend/app/administration/otp/otp.component.html | 9 +++++++-- src/frontend/app/administration/otp/otp.component.ts | 4 ++++ 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/app/externalSignatoryBook/controllers/ExternalSignatoryBookController.php b/src/app/externalSignatoryBook/controllers/ExternalSignatoryBookController.php index c3e232fda2..d24974e3de 100755 --- a/src/app/externalSignatoryBook/controllers/ExternalSignatoryBookController.php +++ b/src/app/externalSignatoryBook/controllers/ExternalSignatoryBookController.php @@ -69,7 +69,7 @@ class ExternalSignatoryBookController } elseif ($connector['type'] == 'fast') { $connector['apiUri'] = $connectionData['apiUri']; - $connector['apiKey'] = $connectionData['apiKey']; + $connector['subscriberId'] = $connectionData['subscriberId']; $connector['certPath'] = $connectionData['certPath']; $connector['certPass'] = AuthenticationModel::decrypt(['cryptedPassword' => $connectionData['certPass']]); $connector['certType'] = $connectionData['certType']; @@ -100,7 +100,7 @@ class ExternalSignatoryBookController } elseif ($body['type'] == 'fast') { $connectionData = [ 'apiUri' => $body['apiUri'], - 'apiKey' => $body['apiKey'], + 'subscriberId' => $body['subscriberId'], 'certPath' => $body['certPath'], 'certPass' => AuthenticationModel::encrypt(['password' => $body['certPass']]), 'certType' => $body['certType'] @@ -149,7 +149,7 @@ class ExternalSignatoryBookController } elseif ($body['type'] == 'fast') { $connectionData = [ 'apiUri' => $body['apiUri'], - 'apiKey' => $body['apiKey'], + 'subscriberId' => $body['subscriberId'], 'certPath' => $body['certPath'], 'certPass' => AuthenticationModel::encrypt(['password' => $body['certPass']]), 'certType' => $body['certType'] @@ -201,8 +201,8 @@ class ExternalSignatoryBookController } if ($args['body']['type'] == 'fast') { - if (!Validator::stringType()->notEmpty()->validate($args['body']['apiKey'])) { - return ['errors' => "Body 'apiKey' is empty or not a string"]; + if (!Validator::stringType()->notEmpty()->validate($args['body']['subscriberId'])) { + return ['errors' => "Body 'subscriberId' is empty or not a string"]; } elseif (!Validator::stringType()->notEmpty()->validate($args['body']['apiUri'])) { return ['errors' => "Body 'apiUri' is empty or not a string"]; } elseif (!Validator::stringType()->notEmpty()->validate($args['body']['certPath'])) { diff --git a/src/app/workflow/controllers/FastOTPController.php b/src/app/workflow/controllers/FastOTPController.php index a449933e73..793b12aacf 100644 --- a/src/app/workflow/controllers/FastOTPController.php +++ b/src/app/workflow/controllers/FastOTPController.php @@ -318,8 +318,8 @@ class FastOTPController { if (!Validator::arrayType()->notEmpty()->validate($args['connection_data'])) { return ['errors' => "External signatory book configuration 'connection_data' is empty or not a array"]; - } elseif (!Validator::stringType()->notEmpty()->validate($args['connection_data']['apiKey'])) { - return ['errors' => "External signatory book configuration 'apiKey' is empty or not a string"]; + } elseif (!Validator::stringType()->notEmpty()->validate($args['connection_data']['subscriberId'])) { + return ['errors' => "External signatory book configuration 'subscriberId' is empty or not a string"]; } elseif (!Validator::stringType()->notEmpty()->validate($args['connection_data']['apiUri'])) { return ['errors' => "External signatory book configuration 'apiUri' is empty or not a string"]; } elseif (!Validator::stringType()->notEmpty()->validate($args['connection_data']['certPath'])) { @@ -355,10 +355,9 @@ class FastOTPController { ValidatorModel::notEmpty($args, ['connection_data', 'multipartBody']); ValidatorModel::arrayType($args, ['connection_data', 'multipartBody']); - $curlReturn = CurlModel::exec([ 'method' => 'POST', - 'url' => $args['connection_data']['apiUri'] . "/documents/v2/otp/{$args['connection_data']['apiKey']}/signature-otp/upload", + 'url' => $args['connection_data']['apiUri'] . "/documents/v2/otp/{$args['connection_data']['subscriberId']}/signature-otp/upload", 'options' => [ CURLOPT_SSLCERT => $args['connection_data']['certPath'], CURLOPT_SSLCERTPASSWD => AuthenticationModel::decrypt(['cryptedPassword' => $args['connection_data']['certPass']]), diff --git a/src/frontend/app/administration/otp/otp.component.html b/src/frontend/app/administration/otp/otp.component.html index a6fcd858c1..1355aafe80 100644 --- a/src/frontend/app/administration/otp/otp.component.html +++ b/src/frontend/app/administration/otp/otp.component.html @@ -36,12 +36,17 @@ <ion-input name="apiUri" [maxlength]="128" [(ngModel)]="connector.apiUri" required> </ion-input> </ion-item> - <ion-item> - <ion-label color="secondary" position="floating">{{(connector.type === 'yousign' ? 'lang.apiKey' : 'lang.subscriberId') | translate}} *</ion-label> + <ion-item *ngIf="connector.type === 'yousign'"> + <ion-label color="secondary" position="floating">{{'lang.apiKey' | translate}} *</ion-label> <ion-input name="apiKey" [maxlength]="128" [(ngModel)]="connector.apiKey" required> </ion-input> </ion-item> <ng-container *ngIf="connector.type === 'fast'"> + <ion-item> + <ion-label color="secondary" position="floating">{{'lang.subscriberId' | translate}} *</ion-label> + <ion-input name="subscriberId" [maxlength]="128" [(ngModel)]="connector.subscriberId" required> + </ion-input> + </ion-item> <ion-item> <ion-label color="secondary" position="floating">{{'lang.certPath' | translate}} *</ion-label> <ion-input name="certPath" [maxlength]="128" [(ngModel)]="connector.certPath" required> diff --git a/src/frontend/app/administration/otp/otp.component.ts b/src/frontend/app/administration/otp/otp.component.ts index 0f8c3a16d4..10a789227d 100644 --- a/src/frontend/app/administration/otp/otp.component.ts +++ b/src/frontend/app/administration/otp/otp.component.ts @@ -20,6 +20,7 @@ export interface Connector { label: string; apiUri: string; apiKey: string; + subscriberId: string; certPath?: string; certPass?: string; certType?: string; @@ -79,6 +80,7 @@ export class OtpComponent implements OnInit, OnDestroy { label: '', apiUri: this.apiDefaultUri[this.connectorTypes[0]], apiKey: '', + subscriberId: '', securityModes: ['sms'], message : { otp_sms : '', @@ -232,10 +234,12 @@ export class OtpComponent implements OnInit, OnDestroy { if (!error) { if (this.connector.type === 'yousign') { + delete this.connector.subscriberId; delete this.connector.certPass; delete this.connector.certPath; delete this.connector.certType; } else if (this.connector.type === 'fast') { + delete this.connector.apiKey; delete this.connector.securityModes; delete this.connector.message; } -- GitLab