]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add Config container class to server container
authorBart Visscher <bartv@thisnet.nl>
Fri, 20 Sep 2013 18:21:24 +0000 (20:21 +0200)
committerBart Visscher <bartv@thisnet.nl>
Fri, 20 Sep 2013 18:21:24 +0000 (20:21 +0200)
lib/allconfig.php [new file with mode: 0644]
lib/public/iconfig.php [new file with mode: 0644]
lib/public/iservercontainer.php
lib/server.php

diff --git a/lib/allconfig.php b/lib/allconfig.php
new file mode 100644 (file)
index 0000000..81c8892
--- /dev/null
@@ -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 (file)
index 0000000..0c150ec
--- /dev/null
@@ -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);
+}
index ebcc0fe4cd49a0bb686fc0ce882c7b5cf1a87008..4478a4e8a6cd47a61de766f8ea71105745d744c9 100644 (file)
@@ -74,6 +74,11 @@ interface IServerContainer {
         */
        function getNavigationManager();
 
+       /**
+        * @return \OCP\IConfig
+        */
+       function getConfig();
+
        /**
         * Returns an ICache instance
         *
index 13bda2dc30df9fd3c96187a674a202d677c8eaac..57e7f4ab4f1f169eeb067e64d387dbcdd0149b1c 100644 (file)
@@ -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();
                });
@@ -162,6 +165,12 @@ class Server extends SimpleContainer implements IServerContainer {
                return $this->query('NavigationManager');
        }
 
+       /**
+        * @return \OC\Config
+        */
+       function getConfig() {
+               return $this->query('AllConfig');
+       }
        /**
         * Returns an ICache instance
         *