summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/css/styles.css4
-rw-r--r--core/templates/untrustedDomain.php19
-rw-r--r--lib/base.php7
-rw-r--r--lib/private/allconfig.php7
-rw-r--r--lib/public/iconfig.php3
-rw-r--r--settings/ajax/setsecurity.php12
-rw-r--r--settings/js/admin.js18
7 files changed, 58 insertions, 12 deletions
diff --git a/core/css/styles.css b/core/css/styles.css
index f1ce49cfe20..292fb83a056 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -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
index 00000000000..b661834318d
--- /dev/null
+++ b/core/templates/untrustedDomain.php
@@ -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>
diff --git a/lib/base.php b/lib/base.php
index 759a4177031..499ef29f304 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -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;
}
diff --git a/lib/private/allconfig.php b/lib/private/allconfig.php
index de3ac973637..eb114546010 100644
--- a/lib/private/allconfig.php
+++ b/lib/private/allconfig.php
@@ -18,11 +18,10 @@ class AllConfig implements \OCP\IConfig {
*
* @param string $key the key of the value, under which will be saved
* @param mixed $value the value that should be stored
- * @todo need a use case for this
*/
-// public function setSystemValue($key, $value) {
-// \OCP\Config::setSystemValue($key, $value);
-// }
+ public function setSystemValue($key, $value) {
+ \OCP\Config::setSystemValue($key, $value);
+ }
/**
* Looks up a system wide defined value
diff --git a/lib/public/iconfig.php b/lib/public/iconfig.php
index 0ebbd9f5a71..d4a8cdc7381 100644
--- a/lib/public/iconfig.php
+++ b/lib/public/iconfig.php
@@ -39,9 +39,8 @@ interface IConfig {
*
* @param string $key the key of the value, under which will be saved
* @param mixed $value the value that should be stored
- * @todo need a use case for this
*/
-// public function setSystemValue($key, $value);
+ public function setSystemValue($key, $value);
/**
* Looks up a system wide defined value
diff --git a/settings/ajax/setsecurity.php b/settings/ajax/setsecurity.php
index 675d7eced47..f1f737a4943 100644
--- a/settings/ajax/setsecurity.php
+++ b/settings/ajax/setsecurity.php
@@ -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::$server->getConfig()->setSystemValue('forcessl', filter_var($_POST['enforceHTTPS'], FILTER_VALIDATE_BOOLEAN));
+}
+
+if(isset($_POST['trustedDomain'])) {
+ $trustedDomains = \OC::$server->getConfig()->getSystemValue('trusted_domains');
+ $trustedDomains[] = $_POST['trustedDomain'];
+ \OC::$server->getConfig()->setSystemValue('trusted_domains', $trustedDomains);
+}
echo 'true';
diff --git a/settings/js/admin.js b/settings/js/admin.js
index a202feb4f65..56dc1b98716 100644
--- a/settings/js/admin.js
+++ b/settings/js/admin.js
@@ -38,6 +38,24 @@ 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 }
+ }).done(function() {
+ window.location.replace(OC.generateUrl('settings/admin'));
+ });
+ }
+ });
+ }
+
$('select#excludedGroups[multiple]').each(function (index, element) {
SharingGroupList.applyMultipleSelect($(element));