summaryrefslogtreecommitdiffstats
path: root/settings/controller/securitysettingscontroller.php
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2014-11-11 20:37:50 +0100
committerThomas Müller <thomas.mueller@tmit.eu>2014-11-11 20:37:50 +0100
commit4c1244f50c78b16c670f9ef1a8e33ef4b30d0d77 (patch)
treefd58111b3105e3f2bbc9a1efd186cbfe25a222b4 /settings/controller/securitysettingscontroller.php
parent3ecb3f16bf51bf2b691292212e72081c6353a3d4 (diff)
parente73ccbd4cade0622615ee133496a571ac1d6dba7 (diff)
downloadnextcloud-server-4c1244f50c78b16c670f9ef1a8e33ef4b30d0d77.tar.gz
nextcloud-server-4c1244f50c78b16c670f9ef1a8e33ef4b30d0d77.zip
Merge pull request #11917 from owncloud/fix-11909
Add checkbox to enforce SSL for subdomains
Diffstat (limited to 'settings/controller/securitysettingscontroller.php')
-rw-r--r--settings/controller/securitysettingscontroller.php95
1 files changed, 95 insertions, 0 deletions
diff --git a/settings/controller/securitysettingscontroller.php b/settings/controller/securitysettingscontroller.php
new file mode 100644
index 00000000000..af60df8dc3b
--- /dev/null
+++ b/settings/controller/securitysettingscontroller.php
@@ -0,0 +1,95 @@
+<?php
+/**
+ * @author Lukas Reschke
+ * @copyright 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.
+ */
+
+namespace OC\Settings\Controller;
+
+use \OCP\AppFramework\Controller;
+use OCP\IRequest;
+use OCP\IConfig;
+
+/**
+ * @package OC\Settings\Controller
+ */
+class SecuritySettingsController extends Controller {
+ /** @var \OCP\IConfig */
+ private $config;
+
+ /**
+ * @param string $appName
+ * @param IRequest $request
+ * @param IConfig $config
+ */
+ public function __construct($appName,
+ IRequest $request,
+ IConfig $config) {
+ parent::__construct($appName, $request);
+ $this->config = $config;
+ }
+
+ /**
+ * @return array
+ */
+ protected function returnSuccess() {
+ return array(
+ 'status' => 'success'
+ );
+ }
+
+ /**
+ * @return array
+ */
+ protected function returnError() {
+ return array(
+ 'status' => 'error'
+ );
+ }
+
+ /**
+ * Enforce or disable the enforcement of SSL
+ * @param boolean $enforceHTTPS Whether SSL should be enforced
+ * @return array
+ */
+ public function enforceSSL($enforceHTTPS = false) {
+ if(!is_bool($enforceHTTPS)) {
+ return $this->returnError();
+ }
+ $this->config->setSystemValue('forcessl', $enforceHTTPS);
+
+ return $this->returnSuccess();
+ }
+
+ /**
+ * Enforce or disable the enforcement for SSL on subdomains
+ * @param bool $forceSSLforSubdomains Whether SSL on subdomains should be enforced
+ * @return array
+ */
+ public function enforceSSLForSubdomains($forceSSLforSubdomains = false) {
+ if(!is_bool($forceSSLforSubdomains)) {
+ return $this->returnError();
+ }
+ $this->config->setSystemValue('forceSSLforSubdomains', $forceSSLforSubdomains);
+
+ return $this->returnSuccess();
+ }
+
+ /**
+ * Add a new trusted domain
+ * @param string $newTrustedDomain The newly to add trusted domain
+ * @return array
+ */
+ public function trustedDomains($newTrustedDomain) {
+ $trustedDomains = $this->config->getSystemValue('trusted_domains');
+ $trustedDomains[] = $newTrustedDomain;
+ $this->config->setSystemValue('trusted_domains', $trustedDomains);
+
+ return $this->returnSuccess();
+ }
+
+}