summaryrefslogtreecommitdiffstats
path: root/lib/private/allconfig.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/allconfig.php')
-rw-r--r--lib/private/allconfig.php89
1 files changed, 84 insertions, 5 deletions
diff --git a/lib/private/allconfig.php b/lib/private/allconfig.php
index df75a332a13..5706abc92be 100644
--- a/lib/private/allconfig.php
+++ b/lib/private/allconfig.php
@@ -26,6 +26,8 @@
*/
namespace OC;
+
+use OCP\IAppConfig;
use OCP\IDBConnection;
use OCP\PreConditionNotMetException;
@@ -39,6 +41,9 @@ class AllConfig implements \OCP\IConfig {
/** @var IDBConnection */
private $connection;
+ /** @var IAppConfig */
+ private $appConfig;
+
/**
* 3 dimensional array with the following structure:
* [ $userId =>
@@ -80,11 +85,17 @@ class AllConfig implements \OCP\IConfig {
*
* otherwise a SQLite database is created in the wrong directory
* because the database connection was created with an uninitialized config
+ *
+ * The same applies for the app config, because it uses the database
+ * connection itself
*/
private function fixDIInit() {
if($this->connection === null) {
$this->connection = \OC::$server->getDatabaseConnection();
}
+ if ($this->appConfig === null) {
+ $this->appConfig = \OC::$server->getAppConfig();
+ }
}
/**
@@ -134,7 +145,10 @@ class AllConfig implements \OCP\IConfig {
* @return string[] the keys stored for the app
*/
public function getAppKeys($appName) {
- return \OC::$server->getAppConfig()->getKeys($appName);
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ return $this->appConfig->getKeys($appName);
}
/**
@@ -145,7 +159,24 @@ class AllConfig implements \OCP\IConfig {
* @param string $value the value that should be stored
*/
public function setAppValue($appName, $key, $value) {
- \OC::$server->getAppConfig()->setValue($appName, $key, $value);
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ $this->appConfig->setValue($appName, $key, $value);
+ }
+
+ /**
+ * Checks if a key is set in the apps config
+ *
+ * @param string $appName the appName tto look a key up
+ * @param string $key the key to look up
+ * @return bool
+ */
+ public function hasAppKey($appName, $key) {
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ $this->appConfig->hasKey($appName, $key);
}
/**
@@ -157,7 +188,49 @@ class AllConfig implements \OCP\IConfig {
* @return string the saved value
*/
public function getAppValue($appName, $key, $default = '') {
- return \OC::$server->getAppConfig()->getValue($appName, $key, $default);
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ return $this->appConfig->getValue($appName, $key, $default);
+ }
+
+ /**
+ * Get all app values that are stored
+ *
+ * @param string $appName the appName
+ * @return array with key - value pair as they are saved previously
+ */
+ public function getAppValuesByApp($appName) {
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ return $this->appConfig->getValues($appName, false);
+ }
+
+ /**
+ * Get all app values that use the same key
+ *
+ * @param string $key the appName
+ * @return array with key - value pair as they are saved previously with the
+ * app name as key
+ */
+ public function getAppValuesByKey($key) {
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ return $this->appConfig->getValues(false, $key);
+ }
+
+ /**
+ * Get all apps that have at least one value saved
+ *
+ * @return array containing app names
+ */
+ public function getApps() {
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ return $this->appConfig->getApps();
}
/**
@@ -167,7 +240,10 @@ class AllConfig implements \OCP\IConfig {
* @param string $key the key of the value, under which it was saved
*/
public function deleteAppValue($appName, $key) {
- \OC::$server->getAppConfig()->deleteKey($appName, $key);
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ $this->appConfig->deleteKey($appName, $key);
}
/**
@@ -176,7 +252,10 @@ class AllConfig implements \OCP\IConfig {
* @param string $appName the appName the configs are stored under
*/
public function deleteAppValues($appName) {
- \OC::$server->getAppConfig()->deleteApp($appName);
+ // TODO - FIXME
+ $this->fixDIInit();
+
+ $this->appConfig->deleteApp($appName);
}