Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2016-01-12 11:53:23 +0300
committerMorris Jobke <hey@morrisjobke.de>2016-01-12 11:53:23 +0300
commit8b6b042ffde9490c24a1689919dbc6678381239c (patch)
tree1b5f30630887c44dcde93beaff08db3d199496ca
parent3317dd0a8e2ca265172d53a16f9241f3351aa3b8 (diff)
Add config switch to disable the .well-known URL check
-rw-r--r--config/config.sample.php7
-rw-r--r--core/js/setupchecks.js8
-rw-r--r--core/js/tests/specs/setupchecksSpec.js13
-rw-r--r--settings/admin.php1
-rw-r--r--settings/js/admin.js4
-rw-r--r--settings/templates/admin.php2
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>