diff --git a/lib/Controller/SettingsController.php b/lib/Controller/SettingsController.php index 0ae90da07a..6dee13062f 100644 --- a/lib/Controller/SettingsController.php +++ b/lib/Controller/SettingsController.php @@ -110,6 +110,9 @@ private function getSettingsData(): array { 'product_name' => $this->capabilitiesService->getServerProductName(), 'product_version' => $this->capabilitiesService->getProductVersion(), 'product_hash' => $this->capabilitiesService->getProductHash(), + 'esignature_base_url' => $this->appConfig->getAppValue('esignature_base_url'), + 'esignature_client_id' => $this->appConfig->getAppValue('esignature_client_id'), + 'esignature_secret' => $this->appConfig->getAppValue('esignature_secret'), ]; } @@ -122,6 +125,9 @@ public function setSettings( ?string $doc_format, ?string $external_apps, ?string $canonical_webroot, + ?string $esignature_base_url, + ?string $esignature_client_id, + ?string $esignature_secret, ): JSONResponse { if ($wopi_url !== null) { $this->appConfig->setAppValue('wopi_url', $wopi_url); @@ -158,6 +164,18 @@ public function setSettings( $this->appConfig->setAppValue('canonical_webroot', $canonical_webroot); } + if ($esignature_base_url !== null) { + $this->appConfig->setAppValue('esignature_base_url', $esignature_base_url); + } + + if ($esignature_client_id !== null) { + $this->appConfig->setAppValue('esignature_client_id', $esignature_client_id); + } + + if ($esignature_secret !== null) { + $this->appConfig->setAppValue('esignature_secret', $esignature_secret); + } + try { $output = new NullOutput(); $this->connectivityService->testDiscovery($output); diff --git a/lib/Controller/WopiController.php b/lib/Controller/WopiController.php index cef78e99d5..df3af275ea 100644 --- a/lib/Controller/WopiController.php +++ b/lib/Controller/WopiController.php @@ -159,6 +159,7 @@ public function checkFileInfo(string $fileId, string $access_token): JSONRespons 'IsUserLocked' => $this->permissionManager->userIsFeatureLocked($wopi->getEditorUid()), 'EnableRemoteLinkPicker' => (bool)$wopi->getCanwrite() && !$isPublic && !$wopi->getDirect(), 'HasContentRange' => true, + 'ServerPrivateInfo' => [], ]; $enableZotero = $this->config->getAppValue(Application::APPNAME, 'zoteroEnabled', 'yes') === 'yes'; @@ -174,6 +175,19 @@ public function checkFileInfo(string $fileId, string $access_token): JSONRespons $response['UserPrivateInfo']['SignatureKey'] = $documentSigningKey; $documentSigningCa = $this->config->getUserValue($wopi->getEditorUid(), 'richdocuments', 'documentSigningCa', ''); $response['UserPrivateInfo']['SignatureCa'] = $documentSigningCa; + + $eSignatureBaseUrl = $this->config->getAppValue(Application::APPNAME, 'esignature_base_url'); + if ($eSignatureBaseUrl !== '') { + $response['ServerPrivateInfo']['ESignatureBaseUrl'] = $eSignatureBaseUrl; + } + $eSignatureClientId = $this->config->getAppValue(Application::APPNAME, 'esignature_client_id'); + if ($eSignatureClientId !== '') { + $response['ServerPrivateInfo']['ESignatureClientId'] = $eSignatureClientId; + } + $eSignatureSecret = $this->config->getAppValue(Application::APPNAME, 'esignature_secret'); + if ($eSignatureSecret !== '') { + $response['ServerPrivateInfo']['ESignatureSecret'] = $eSignatureSecret; + } } if ($wopi->hasTemplateId()) { $response['TemplateSource'] = $this->getWopiUrlForTemplate($wopi); diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index a5e9778923..7dc7158bb6 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -53,6 +53,9 @@ public function getForm(): TemplateResponse { 'os_family' => PHP_VERSION_ID >= 70200 ? PHP_OS_FAMILY : PHP_OS, 'platform' => php_uname('m'), 'fonts' => $this->fontService->getFontFileNames(), + 'esignature_base_url' => $this->config->getAppValue('richdocuments', 'esignature_base_url'), + 'esignature_client_id' => $this->config->getAppValue('richdocuments', 'esignature_client_id'), + 'esignature_secret' => $this->config->getAppValue('richdocuments', 'esignature_secret'), ], ], 'blank' diff --git a/src/components/AdminSettings.vue b/src/components/AdminSettings.vue index d701bd6466..0023ba5705 100644 --- a/src/components/AdminSettings.vue +++ b/src/components/AdminSettings.vue @@ -391,6 +391,25 @@ +