]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add a trusted domain wizard
authorLukas Reschke <lukas@owncloud.com>
Thu, 21 Aug 2014 20:22:35 +0000 (22:22 +0200)
committerLukas Reschke <lukas@owncloud.com>
Thu, 21 Aug 2014 20:22:35 +0000 (22:22 +0200)
Adds a little button to the trusted domain warning, if an admin clicks on the warning he will be redirected to ownCloud and asked whether he want to trust this domain.

By far not the cleanest code, or clean at all, but does the job and I don't see a reason to make a lot of changes for this little improvement.

core/css/styles.css
core/templates/untrustedDomain.php [new file with mode: 0644]
lib/base.php
settings/ajax/setsecurity.php
settings/js/admin.js

index f1ce49cfe2037c544a666e3e4fb476ef5d9f496a..292fb83a056c419d35586796f79680deb5ce735f 100644 (file)
@@ -611,6 +611,10 @@ label.infield {
        margin-left: -200px !important;
 }
 
+.error-wide .button {
+       color: black !important;
+}
+
 /* Fixes for log in page, TODO should be removed some time */
 #body-login .update,
 #body-login .error {
diff --git a/core/templates/untrustedDomain.php b/core/templates/untrustedDomain.php
new file mode 100644 (file)
index 0000000..b661834
--- /dev/null
@@ -0,0 +1,19 @@
+<?php /** @var $_ array */ ?>
+
+<ul class="error-wide">
+       <li class='error'>
+               <?php p($l->t('You are accessing the server from an untrusted domain.')); ?><br/>
+
+               <p class='hint'>
+                       <?php p($l->t('Please contact your administrator. If you are an administrator of this instance, configure the "trusted_domain" setting in config/config.php. An example configuration is provided in config/config.sample.php.')); ?>
+                       <br/>
+                       <?php p($l->t('Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain.')); ?>
+                       <br/><br/>
+                       <p style="text-align:center;">
+                               <a href="<?php print_unescaped(OC_Helper::makeURLAbsolute(\OCP\Util::linkToRoute('settings_admin'))); ?>?trustDomain=<?php p($_['domain']); ?>" class="button">
+                                       <?php p($l->t('Add "%s" as trusted domain', array($_['domain']))); ?>
+                               </a>
+                       </p>
+               </p>
+       </li>
+</ul>
index 759a41770317211a4b741808a186dbf16cb8eae2..499ef29f304f0b9a8f74c3c44ac41ae8fe0b5e00 100644 (file)
@@ -689,10 +689,9 @@ class OC {
                ) {
                        header('HTTP/1.1 400 Bad Request');
                        header('Status: 400 Bad Request');
-                       OC_Template::printErrorPage(
-                               $l->t('You are accessing the server from an untrusted domain.'),
-                               $l->t('Please contact your administrator. If you are an administrator of this instance, configure the "trusted_domain" setting in config/config.php. An example configuration is provided in config/config.sample.php.')
-                       );
+                       $tmpl = new OCP\Template('core', 'untrustedDomain', 'guest');
+                       $tmpl->assign('domain', $_SERVER['SERVER_NAME']);
+                       $tmpl->printPage();
                        return;
                }
 
index 675d7eced47820e296112db3b27d28da2abf815c..3cb1d05ee63c0ff6e7c72d6177b1dd65b92a922a 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright (c) 2013, Lukas Reschke <lukas@statuscode.ch>
+ * Copyright (c) 2013-2014, Lukas Reschke <lukas@owncloud.com>
  * This file is licensed under the Affero General Public License version 3 or later.
  * See the COPYING-README file.
  */
@@ -8,6 +8,14 @@
 OC_Util::checkAdminUser();
 OCP\JSON::callCheck();
 
-OC_Config::setValue( 'forcessl', filter_var($_POST['enforceHTTPS'], FILTER_VALIDATE_BOOLEAN));
+if(isset($_POST['enforceHTTPS'])) {
+       OC_Config::setValue( 'forcessl', filter_var($_POST['enforceHTTPS'], FILTER_VALIDATE_BOOLEAN));
+}
+
+if(isset($_POST['trustedDomain'])) {
+       $trustedDomains = OC_Config::getValue('trusted_domains');
+       $trustedDomains[] = $_POST['trustedDomain'];
+       OC_Config::setValue('trusted_domains', $trustedDomains);
+}
 
 echo 'true';
index a202feb4f6517f901e2bc60085eb1819924a32fe..b09704f87b7c6e679acd86988932989d5bea9503 100644 (file)
@@ -38,6 +38,22 @@ var SharingGroupList = {
 };
 
 $(document).ready(function(){
+       var params = OC.Util.History.parseUrlQuery();
+
+       // Hack to add a trusted domain
+       if (params.trustDomain) {
+               OC.dialogs.confirm(t('core', 'Are you really sure you want add "{domain}" as trusted domain?', {domain: params.trustDomain}),
+                       t('core', 'Add trusted domain'), function(answer) {
+                               if(answer) {
+                                       $.ajax({
+                                               type: 'POST',
+                                               url: OC.generateUrl('settings/ajax/setsecurity.php'),
+                                               data: { trustedDomain: params.trustDomain}
+                                       });
+                               }
+                       });
+       }
+
 
        $('select#excludedGroups[multiple]').each(function (index, element) {
                SharingGroupList.applyMultipleSelect($(element));