diff --git a/core/js/setupchecks.js b/core/js/setupchecks.js index cca3707acd..4aa60912c3 100644 --- a/core/js/setupchecks.js +++ b/core/js/setupchecks.js @@ -52,12 +52,16 @@ * @param url the URL to test * @param placeholderUrl the placeholder URL - can be found at oc_defaults.docPlaceholderUrl * @param {boolean} runCheck if this is set to false the check is skipped and no error is returned - * @param {int} expectedStatus the expected HTTP status to be returned by the URL, 207 by default + * @param {int|int[]} expectedStatus the expected HTTP status to be returned by the URL, 207 by default * @return $.Deferred object resolved with an array of error messages */ checkWellKnownUrl: function(url, placeholderUrl, runCheck, expectedStatus) { if (expectedStatus === undefined) { - expectedStatus = 207; + expectedStatus = [207]; + } + + if (!Array.isArray(expectedStatus)) { + expectedStatus = [expectedStatus]; } var deferred = $.Deferred(); @@ -68,7 +72,7 @@ } var afterCall = function(xhr) { var messages = []; - if (xhr.status !== expectedStatus) { + if (expectedStatus.indexOf(xhr.status) === -1) { var docUrl = placeholderUrl.replace('PLACEHOLDER', 'admin-setup-well-known-URL'); messages.push({ msg: t('core', 'Your web server is not properly set up to resolve "{url}". Further information can be found in the documentation.', { docLink: docUrl, url: url }), diff --git a/public.php b/public.php index f033e1897c..ae95624e8d 100644 --- a/public.php +++ b/public.php @@ -68,7 +68,8 @@ try { OC_App::loadApps(array('filesystem', 'logging')); if (!\OC::$server->getAppManager()->isInstalled($app)) { - throw new Exception('App not installed: ' . $app); + http_response_code(501); + exit; } OC_App::loadApp($app); OC_User::setIncognitoMode(true); diff --git a/settings/js/admin.js b/settings/js/admin.js index 2f3cc0356c..8c198bc782 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -247,7 +247,7 @@ $(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/webfinger', oc_defaults.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true && !!oc_appconfig.core.public_webfinger, [200, 501]), 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(),