diff options
author | Morris Jobke <hey@morrisjobke.de> | 2016-01-12 09:53:23 +0100 |
---|---|---|
committer | Morris Jobke <hey@morrisjobke.de> | 2016-01-12 09:53:23 +0100 |
commit | 8b6b042ffde9490c24a1689919dbc6678381239c (patch) | |
tree | 1b5f30630887c44dcde93beaff08db3d199496ca | |
parent | 3317dd0a8e2ca265172d53a16f9241f3351aa3b8 (diff) | |
download | nextcloud-server-8b6b042ffde9490c24a1689919dbc6678381239c.tar.gz nextcloud-server-8b6b042ffde9490c24a1689919dbc6678381239c.zip |
Add config switch to disable the .well-known URL check
-rw-r--r-- | config/config.sample.php | 7 | ||||
-rw-r--r-- | core/js/setupchecks.js | 8 | ||||
-rw-r--r-- | core/js/tests/specs/setupchecksSpec.js | 13 | ||||
-rw-r--r-- | settings/admin.php | 1 | ||||
-rw-r--r-- | settings/js/admin.js | 4 | ||||
-rw-r--r-- | settings/templates/admin.php | 2 |
6 files changed, 29 insertions, 6 deletions
diff --git a/config/config.sample.php b/config/config.sample.php index 7ba3977fe3a..525a0895b07 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -477,6 +477,13 @@ $CONFIG = array( 'check_for_working_webdav' => true, /** + * Allows ownCloud to verify a working .well-known URL redirects. This is done + * by attempting to make a request from JS to + * https://your-domain.com/.well-known/caldav/ + */ +'check_for_working_wellknown_setup' => true, + +/** * This is a crucial security check on Apache servers that should always be set * to ``true``. This verifies that the ``.htaccess`` file is writable and works. * If it is not, then any options controlled by ``.htaccess``, such as large diff --git a/core/js/setupchecks.js b/core/js/setupchecks.js index b1b8dd358d2..d178a7432b0 100644 --- a/core/js/setupchecks.js +++ b/core/js/setupchecks.js @@ -51,10 +51,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 * @return $.Deferred object resolved with an array of error messages */ - checkWellKnownUrl: function(url, placeholderUrl) { + checkWellKnownUrl: function(url, placeholderUrl, runCheck) { var deferred = $.Deferred(); + + if(runCheck === false) { + deferred.resolve([]); + return deferred.promise(); + } var afterCall = function(xhr) { var messages = []; if (xhr.status !== 207) { diff --git a/core/js/tests/specs/setupchecksSpec.js b/core/js/tests/specs/setupchecksSpec.js index 18ba44ac61b..97f624cecaf 100644 --- a/core/js/tests/specs/setupchecksSpec.js +++ b/core/js/tests/specs/setupchecksSpec.js @@ -62,7 +62,7 @@ describe('OC.SetupChecks tests', function() { describe('checkWellKnownUrl', function() { it('should fail with another response status code than 207', function(done) { - var async = OC.SetupChecks.checkWellKnownUrl('/.well-known/caldav/', 'http://example.org/PLACEHOLDER'); + var async = OC.SetupChecks.checkWellKnownUrl('/.well-known/caldav/', 'http://example.org/PLACEHOLDER', true); suite.server.requests[0].respond(200); @@ -76,7 +76,7 @@ describe('OC.SetupChecks tests', function() { }); it('should return no error with a response status code of 207', function(done) { - var async = OC.SetupChecks.checkWebDAV('/.well-known/caldav/', 'http://example.org/PLACEHOLDER'); + var async = OC.SetupChecks.checkWellKnownUrl('/.well-known/caldav/', 'http://example.org/PLACEHOLDER', true); suite.server.requests[0].respond(207); @@ -85,6 +85,15 @@ describe('OC.SetupChecks tests', function() { done(); }); }); + + it('should return no error when no check should be run', function(done) { + var async = OC.SetupChecks.checkWellKnownUrl('/.well-known/caldav/', 'http://example.org/PLACEHOLDER', false); + + async.done(function( data, s, x ){ + expect(data).toEqual([]); + done(); + }); + }); }); describe('checkSetup', function() { diff --git a/settings/admin.php b/settings/admin.php index d484d6a1e48..25db05d99ac 100644 --- a/settings/admin.php +++ b/settings/admin.php @@ -75,6 +75,7 @@ $template->assign('showLog', $showLog); $template->assign('readOnlyConfigEnabled', OC_Helper::isReadOnlyConfigEnabled()); $template->assign('isLocaleWorking', OC_Util::isSetLocaleWorking()); $template->assign('isAnnotationsWorking', OC_Util::isAnnotationsWorking()); +$template->assign('checkForWorkingWellKnownSetup', $config->getSystemValue('check_for_working_wellknown_setup', true)); $template->assign('has_fileinfo', OC_Util::fileInfoLoaded()); $template->assign('backgroundjobs_mode', $appConfig->getValue('core', 'backgroundjobs_mode', 'ajax')); $template->assign('cron_log', $config->getSystemValue('cron_log', true)); diff --git a/settings/js/admin.js b/settings/js/admin.js index 48dfdc88246..6660bfe9b48 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -168,8 +168,8 @@ $(document).ready(function(){ // run setup checks then gather error messages $.when( OC.SetupChecks.checkWebDAV(), - OC.SetupChecks.checkWellKnownUrl('/.well-known/caldav/', oc_defaults.docPlaceholderUrl), - OC.SetupChecks.checkWellKnownUrl('/.well-known/carddav/', oc_defaults.docPlaceholderUrl), + 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() ).then(function(check1, check2, check3, check4, check5) { diff --git a/settings/templates/admin.php b/settings/templates/admin.php index a66851743e6..539e4b94b8b 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -177,7 +177,7 @@ if ($_['cronErrors']) { ?> </ul> -<div id="postsetupchecks"> +<div id="postsetupchecks" data-check-wellknown="<?php if($_['checkForWorkingWellKnownSetup']) { p('true'); } else { p('false'); } ?>"> <div class="loading"></div> <ul class="errors hidden"></ul> <ul class="warnings hidden"></ul> |