From e92abfd4d8dfb9dbb42ccfc0c23193b1ddde3bbf Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Fri, 20 Sep 2013 20:21:24 +0200 Subject: [PATCH] Add Config container class to server container --- lib/allconfig.php | 78 +++++++++++++++++++++++++++++++++ lib/public/iconfig.php | 59 +++++++++++++++++++++++++ lib/public/iservercontainer.php | 5 +++ lib/server.php | 9 ++++ 4 files changed, 151 insertions(+) create mode 100644 lib/allconfig.php create mode 100644 lib/public/iconfig.php 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 @@ + + * 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 @@ + + * 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 @@ -74,6 +74,11 @@ interface IServerContainer { */ function getNavigationManager(); + /** + * @return \OCP\IConfig + */ + function getConfig(); + /** * Returns an ICache instance * 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(); }); @@ -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 * -- 2.39.5