summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2013-09-20 20:21:24 +0200
committerBart Visscher <bartv@thisnet.nl>2013-09-20 20:21:24 +0200
commite92abfd4d8dfb9dbb42ccfc0c23193b1ddde3bbf (patch)
tree0845f4ed073c8b3d817f8cbbf3993c0d104def7f
parente3013c580108e6b0cc332ba14976f3ffb4b7b274 (diff)
downloadnextcloud-server-e92abfd4d8dfb9dbb42ccfc0c23193b1ddde3bbf.tar.gz
nextcloud-server-e92abfd4d8dfb9dbb42ccfc0c23193b1ddde3bbf.zip
Add Config container class to server container
-rw-r--r--lib/allconfig.php78
-rw-r--r--lib/public/iconfig.php59
-rw-r--r--lib/public/iservercontainer.php5
-rw-r--r--lib/server.php9
4 files changed, 151 insertions, 0 deletions
diff --git a/lib/allconfig.php b/lib/allconfig.php
new file mode 100644
index 00000000000..81c8892348b
--- /dev/null
+++ b/lib/allconfig.php
@@ -0,0 +1,78 @@
+<?php
+/**
+ * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ *
+ */
+
+namespace OC;
+
+/**
+ * Class to combine all the configuration options ownCloud offers
+ */
+class AllConfig implements \OCP\IConfig {
+ /**
+ * Sets a new systemwide value
+ * @param string $key the key of the value, under which will be saved
+ * @param string $value the value that should be stored
+ * @todo need a use case for this
+ */
+// public function setSystemValue($key, $value) {
+// \OCP\Config::setSystemValue($key, $value);
+// }
+
+ /**
+ * Looks up a systemwide defined value
+ * @param string $key the key of the value, under which it was saved
+ * @return string the saved value
+ */
+ public function getSystemValue($key) {
+ return \OCP\Config::getSystemValue($key, '');
+ }
+
+
+ /**
+ * Writes a new appwide value
+ * @param string $appName the appName that we want to store the value under
+ * @param string $key the key of the value, under which will be saved
+ * @param string $value the value that should be stored
+ */
+ public function setAppValue($appName, $key, $value) {
+ \OCP\Config::setAppValue($appName, $key, $value);
+ }
+
+ /**
+ * Looks up an appwide defined value
+ * @param string $appName the appName that we stored the value under
+ * @param string $key the key of the value, under which it was saved
+ * @return string the saved value
+ */
+ public function getAppValue($appName, $key) {
+ return \OCP\Config::getAppValue($appName, $key, '');
+ }
+
+
+ /**
+ * Set a user defined value
+ * @param string $userId the userId of the user that we want to store the value under
+ * @param string $appName the appName that we want to store the value under
+ * @param string $key the key under which the value is being stored
+ * @param string $value the value that you want to store
+ */
+ public function setUserValue($userId, $appName, $key, $value) {
+ \OCP\Config::setUserValue($userId, $appName, $key, $value);
+ }
+
+
+ /**
+ * Shortcut for getting a user defined value
+ * @param string $userId the userId of the user that we want to store the value under
+ * @param string $appName the appName that we stored the value under
+ * @param string $key the key under which the value is being stored
+ */
+ public function getUserValue($userId, $appName, $key){
+ return \OCP\Config::getUserValue($userId, $appName, $key);
+ }
+}
diff --git a/lib/public/iconfig.php b/lib/public/iconfig.php
new file mode 100644
index 00000000000..0c150ec351a
--- /dev/null
+++ b/lib/public/iconfig.php
@@ -0,0 +1,59 @@
+<?php
+/** * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ *
+ */
+namespace OCP;
+
+/**
+ * Access to all the configuration options ownCloud offers
+ */
+interface IConfig {
+ /**
+ * Sets a new systemwide value
+ * @param string $key the key of the value, under which will be saved
+ * @param string $value the value that should be stored
+ * @todo need a use case for this
+ */
+// public function setSystemValue($key, $value);
+
+ /**
+ * Looks up a systemwide defined value
+ * @param string $key the key of the value, under which it was saved
+ * @return string the saved value
+ */
+ public function getSystemValue($key);
+
+
+ /**
+ * Writes a new appwide value
+ * @param string $key the key of the value, under which will be saved
+ * @param string $value the value that should be stored
+ */
+ public function setAppValue($key, $value, $appName=null);
+
+ /**
+ * Looks up an appwide defined value
+ * @param string $key the key of the value, under which it was saved
+ * @return string the saved value
+ */
+ public function getAppValue($key, $appName=null);
+
+
+ /**
+ * Shortcut for setting a user defined value
+ * @param string $key the key under which the value is being stored
+ * @param string $value the value that you want to store
+ * @param string $userId the userId of the user that we want to store the value under, defaults to the current one
+ */
+ public function setUserValue($key, $value, $userId=null);
+
+ /**
+ * Shortcut for getting a user defined value
+ * @param string $key the key under which the value is being stored
+ * @param string $userId the userId of the user that we want to store the value under, defaults to the current one
+ */
+ public function getUserValue($key, $userId=null);
+}
diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php
index ebcc0fe4cd4..4478a4e8a6c 100644
--- a/lib/public/iservercontainer.php
+++ b/lib/public/iservercontainer.php
@@ -75,6 +75,11 @@ interface IServerContainer {
function getNavigationManager();
/**
+ * @return \OCP\IConfig
+ */
+ function getConfig();
+
+ /**
* Returns an ICache instance
*
* @return \OCP\ICache
diff --git a/lib/server.php b/lib/server.php
index 13bda2dc30d..57e7f4ab4f1 100644
--- a/lib/server.php
+++ b/lib/server.php
@@ -100,6 +100,9 @@ class Server extends SimpleContainer implements IServerContainer {
$this->registerService('NavigationManager', function($c) {
return new \OC\NavigationManager();
});
+ $this->registerService('AllConfig', function($c) {
+ return new \OC\AllConfig();
+ });
$this->registerService('UserCache', function($c) {
return new UserCache();
});
@@ -163,6 +166,12 @@ class Server extends SimpleContainer implements IServerContainer {
}
/**
+ * @return \OC\Config
+ */
+ function getConfig() {
+ return $this->query('AllConfig');
+ }
+ /**
* Returns an ICache instance
*
* @return \OCP\ICache