From 20a5ce217a47c9e3d5dd4016e96e0cc557c51417 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Wed, 10 Oct 2018 14:12:10 +0200 Subject: [PATCH] Add check for well known URL of WebFinger in the settings overview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If the WebFinger service is not set in Nextcloud configuration no check is performed. Signed-off-by: Daniel Calviño Sánchez --- settings/Application.php | 16 ++++++++++++++++ settings/js/admin.js | 5 +++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/settings/Application.php b/settings/Application.php index 5b2b606353..4dee85f263 100644 --- a/settings/Application.php +++ b/settings/Application.php @@ -121,6 +121,8 @@ class Application extends App { Util::connectHook('OC_User', 'post_setPassword', $this, 'onChangePassword'); Util::connectHook('OC_User', 'changeUser', $this, 'onChangeInfo'); + + Util::connectHook('\OCP\Config', 'js', $this, 'extendJsConfig'); } /** @@ -152,4 +154,18 @@ class Application extends App { $hooks = $this->getContainer()->query(Hooks::class); $hooks->onChangeEmail($parameters['user'], $parameters['old_value']); } + + /** + * @param array $settings + */ + public function extendJsConfig(array $settings) { + $appConfig = json_decode($settings['array']['oc_appconfig'], true); + + $publicWebFinger = \OC::$server->getConfig()->getAppValue('core', 'public_webfinger', ''); + if (!empty($publicWebFinger)) { + $appConfig['core']['public_webfinger'] = $publicWebFinger; + } + + $settings['array']['oc_appconfig'] = json_encode($appConfig); + } } diff --git a/settings/js/admin.js b/settings/js/admin.js index de5bc2b953..35f3d949ab 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -248,13 +248,14 @@ $(document).ready(function(){ // run setup checks then gather error messages $.when( OC.SetupChecks.checkWebDAV(), + OC.SetupChecks.checkWellKnownUrl('/.well-known/webfinger', oc_defaults.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true && !!oc_appconfig.core.public_webfinger, 200), OC.SetupChecks.checkWellKnownUrl('/.well-known/caldav', oc_defaults.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true), OC.SetupChecks.checkWellKnownUrl('/.well-known/carddav', oc_defaults.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true), OC.SetupChecks.checkSetup(), OC.SetupChecks.checkGeneric(), OC.SetupChecks.checkDataProtected() - ).then(function(check1, check2, check3, check4, check5, check6) { - var messages = [].concat(check1, check2, check3, check4, check5, check6); + ).then(function(check1, check2, check3, check4, check5, check6, check7) { + var messages = [].concat(check1, check2, check3, check4, check5, check6, check7); var $el = $('#postsetupchecks'); $('#security-warning-state-loading').addClass('hidden');