Commit 4d12c4a3 authored by Thomas Müller's avatar Thomas Müller
Browse files

Merge pull request #13938 from owncloud/deprecate-iappconfig

Deprecated \OCP\IAppConfig - add missing methods to IConfig
parents 722e50a1 378eef7e
...@@ -1312,9 +1312,19 @@ class Test_Files_Sharing_Api extends TestCase { ...@@ -1312,9 +1312,19 @@ class Test_Files_Sharing_Api extends TestCase {
public function testDefaultExpireDate() { public function testDefaultExpireDate() {
\Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER1); \Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER1);
\OC::$server->getAppConfig()->setValue('core', 'shareapi_default_expire_date', 'yes');
\OC::$server->getAppConfig()->setValue('core', 'shareapi_enforce_expire_date', 'yes'); // TODO drop this once all code paths use the DI version - otherwise
\OC::$server->getAppConfig()->setValue('core', 'shareapi_expire_after_n_days', '2'); // the cache inside this config object is out of date because
// OC_Appconfig is used and bypasses this cache which lead to integrity
// constraint violations
$config = \OC::$server->getConfig();
$config->deleteAppValue('core', 'shareapi_default_expire_date');
$config->deleteAppValue('core', 'shareapi_enforce_expire_date');
$config->deleteAppValue('core', 'shareapi_expire_after_n_days');
$config->setAppValue('core', 'shareapi_default_expire_date', 'yes');
$config->setAppValue('core', 'shareapi_enforce_expire_date', 'yes');
$config->setAppValue('core', 'shareapi_expire_after_n_days', '2');
// default expire date is set to 2 days // default expire date is set to 2 days
// the time when the share was created is set to 3 days in the past // the time when the share was created is set to 3 days in the past
...@@ -1358,8 +1368,8 @@ class Test_Files_Sharing_Api extends TestCase { ...@@ -1358,8 +1368,8 @@ class Test_Files_Sharing_Api extends TestCase {
//cleanup //cleanup
$result = \OCP\Share::unshare('file', $info->getId(), \OCP\Share::SHARE_TYPE_USER, \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2); $result = \OCP\Share::unshare('file', $info->getId(), \OCP\Share::SHARE_TYPE_USER, \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2);
$this->assertTrue($result); $this->assertTrue($result);
\OC::$server->getAppConfig()->setValue('core', 'shareapi_default_expire_date', 'no'); $config->setAppValue('core', 'shareapi_default_expire_date', 'no');
\OC::$server->getAppConfig()->setValue('core', 'shareapi_enforce_expire_date', 'no'); $config->setAppValue('core', 'shareapi_enforce_expire_date', 'no');
} }
} }
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
*/ */
namespace OC; namespace OC;
use OCP\IAppConfig;
use OCP\IDBConnection; use OCP\IDBConnection;
use OCP\PreConditionNotMetException; use OCP\PreConditionNotMetException;
...@@ -39,6 +41,9 @@ class AllConfig implements \OCP\IConfig { ...@@ -39,6 +41,9 @@ class AllConfig implements \OCP\IConfig {
/** @var IDBConnection */ /** @var IDBConnection */
private $connection; private $connection;
/** @var IAppConfig */
private $appConfig;
/** /**
* 3 dimensional array with the following structure: * 3 dimensional array with the following structure:
* [ $userId => * [ $userId =>
...@@ -80,11 +85,17 @@ class AllConfig implements \OCP\IConfig { ...@@ -80,11 +85,17 @@ class AllConfig implements \OCP\IConfig {
* *
* otherwise a SQLite database is created in the wrong directory * otherwise a SQLite database is created in the wrong directory
* because the database connection was created with an uninitialized config * 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() { private function fixDIInit() {
if($this->connection === null) { if($this->connection === null) {
$this->connection = \OC::$server->getDatabaseConnection(); $this->connection = \OC::$server->getDatabaseConnection();
} }
if ($this->appConfig === null) {
$this->appConfig = \OC::$server->getAppConfig();
}
} }
/** /**
...@@ -134,7 +145,10 @@ class AllConfig implements \OCP\IConfig { ...@@ -134,7 +145,10 @@ class AllConfig implements \OCP\IConfig {
* @return string[] the keys stored for the app * @return string[] the keys stored for the app
*/ */
public function getAppKeys($appName) { 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 { ...@@ -145,7 +159,24 @@ class AllConfig implements \OCP\IConfig {
* @param string $value the value that should be stored * @param string $value the value that should be stored
*/ */
public function setAppValue($appName, $key, $value) { 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 { ...@@ -157,7 +188,49 @@ class AllConfig implements \OCP\IConfig {
* @return string the saved value * @return string the saved value
*/ */
public function getAppValue($appName, $key, $default = '') { 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 { ...@@ -167,7 +240,10 @@ class AllConfig implements \OCP\IConfig {
* @param string $key the key of the value, under which it was saved * @param string $key the key of the value, under which it was saved
*/ */
public function deleteAppValue($appName, $key) { 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 { ...@@ -176,7 +252,10 @@ class AllConfig implements \OCP\IConfig {
* @param string $appName the appName the configs are stored under * @param string $appName the appName the configs are stored under
*/ */
public function deleteAppValues($appName) { public function deleteAppValues($appName) {
\OC::$server->getAppConfig()->deleteApp($appName); // TODO - FIXME
$this->fixDIInit();
$this->appConfig->deleteApp($appName);
} }
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
* This class provides an easy way for apps to store config values in the * This class provides an easy way for apps to store config values in the
* database. * database.
* *
* @deprecated use \OC::$server->getAppConfig() to get an \OCP\IAppConfig instance * @deprecated use \OC::$server->getConfig() to get an \OCP\IConfig instance
*/ */
class OC_Appconfig { class OC_Appconfig {
/** /**
......
...@@ -170,14 +170,16 @@ class Helper extends \OC\Share\Constants { ...@@ -170,14 +170,16 @@ class Helper extends \OC\Share\Constants {
*/ */
public static function getDefaultExpireSetting() { public static function getDefaultExpireSetting() {
$config = \OC::$server->getConfig();
$defaultExpireSettings = array('defaultExpireDateSet' => false); $defaultExpireSettings = array('defaultExpireDateSet' => false);
// get default expire settings // get default expire settings
$defaultExpireDate = \OC_Appconfig::getValue('core', 'shareapi_default_expire_date', 'no'); $defaultExpireDate = $config->getAppValue('core', 'shareapi_default_expire_date', 'no');
if ($defaultExpireDate === 'yes') { if ($defaultExpireDate === 'yes') {
$enforceExpireDate = \OC_Appconfig::getValue('core', 'shareapi_enforce_expire_date', 'no'); $enforceExpireDate = $config->getAppValue('core', 'shareapi_enforce_expire_date', 'no');
$defaultExpireSettings['defaultExpireDateSet'] = true; $defaultExpireSettings['defaultExpireDateSet'] = true;
$defaultExpireSettings['expireAfterDays'] = (int)\OC_Appconfig::getValue('core', 'shareapi_expire_after_n_days', '7'); $defaultExpireSettings['expireAfterDays'] = (int)($config->getAppValue('core', 'shareapi_expire_after_n_days', '7'));
$defaultExpireSettings['enforceExpireDate'] = $enforceExpireDate === 'yes' ? true : false; $defaultExpireSettings['enforceExpireDate'] = $enforceExpireDate === 'yes' ? true : false;
} }
......
...@@ -27,6 +27,10 @@ namespace OCP; ...@@ -27,6 +27,10 @@ namespace OCP;
/** /**
* This class provides an easy way for apps to store config values in the * This class provides an easy way for apps to store config values in the
* database. * database.
*
* @deprecated This interface will be dropped with ownCloud 10.1 which will be
* released in the first quarter of 2017. Use the methods of
* \OCP\IConfig instead
*/ */
interface IAppConfig { interface IAppConfig {
/** /**
...@@ -34,6 +38,7 @@ interface IAppConfig { ...@@ -34,6 +38,7 @@ interface IAppConfig {
* @param string $app * @param string $app
* @param string $key * @param string $key
* @return bool * @return bool
* @deprecated use method hasAppKey of \OCP\IConfig
*/ */
public function hasKey($app, $key); public function hasKey($app, $key);
...@@ -76,6 +81,7 @@ interface IAppConfig { ...@@ -76,6 +81,7 @@ interface IAppConfig {
* @param string|false $key * @param string|false $key
* @param string|false $app * @param string|false $app
* @return array|false * @return array|false
* @deprecated use method getAppValuesByApp or getAppValuesByKey of \OCP\IConfig
*/ */
public function getValues($app, $key); public function getValues($app, $key);
...@@ -94,6 +100,7 @@ interface IAppConfig { ...@@ -94,6 +100,7 @@ interface IAppConfig {
/** /**
* Get all apps using the config * Get all apps using the config
* @return array an array of app ids * @return array an array of app ids
* @deprecated use method getApps of \OCP\IConfig
* *
* This function returns a list of all apps that have at least one * This function returns a list of all apps that have at least one
* entry in the appconfig table. * entry in the appconfig table.
......
...@@ -89,6 +89,16 @@ interface IConfig { ...@@ -89,6 +89,16 @@ interface IConfig {
*/ */
public function setAppValue($appName, $key, $value); public function setAppValue($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
* @since 8.1.0
*/
public function hasAppKey($appName, $key);
/** /**
* Looks up an app wide defined value * Looks up an app wide defined value
* *
...@@ -99,6 +109,33 @@ interface IConfig { ...@@ -99,6 +109,33 @@ interface IConfig {
*/ */
public function getAppValue($appName, $key, $default = ''); public function getAppValue($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
* @since 8.1.0
*/
public function getAppValuesByApp($appName);
/**
* 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
* @since 8.1.0
*/
public function getAppValuesByKey($key);
/**
* Get all apps that have at least one value saved
*
* @return array containing app names
* @since 8.1.0
*/
public function getApps();
/** /**
* Delete an app wide defined value * Delete an app wide defined value
* *
......
...@@ -857,8 +857,10 @@ class Test_Share extends \Test\TestCase { ...@@ -857,8 +857,10 @@ class Test_Share extends \Test\TestCase {
public function testShareItemWithLinkAndDefaultExpireDate() { public function testShareItemWithLinkAndDefaultExpireDate() {
OC_User::setUserId($this->user1); OC_User::setUserId($this->user1);
\OC_Appconfig::setValue('core', 'shareapi_default_expire_date', 'yes'); $config = \OC::$server->getConfig();
\OC_Appconfig::setValue('core', 'shareapi_expire_after_n_days', '2');
$config->setAppValue('core', 'shareapi_default_expire_date', 'yes');
$config->setAppValue('core', 'shareapi_expire_after_n_days', '2');
$token = OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_LINK, null, \OCP\Constants::PERMISSION_READ); $token = OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_LINK, null, \OCP\Constants::PERMISSION_READ);
$this->assertInternalType( $this->assertInternalType(
...@@ -875,8 +877,8 @@ class Test_Share extends \Test\TestCase { ...@@ -875,8 +877,8 @@ class Test_Share extends \Test\TestCase {
'Failed asserting that the returned row has an default expiration date.' 'Failed asserting that the returned row has an default expiration date.'
); );
\OC_Appconfig::deleteKey('core', 'shareapi_default_expire_date'); $config->deleteAppValue('core', 'shareapi_default_expire_date');
\OC_Appconfig::deleteKey('core', 'shareapi_expire_after_n_days'); $config->deleteAppValue('core', 'shareapi_expire_after_n_days');
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment