diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2017-07-20 22:50:50 +0200 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2017-07-21 08:51:14 +0200 |
commit | 7753b93aa6f6a7815bed8b649212037f681b5560 (patch) | |
tree | 245eaa430ed8291f8cbd9707a38edfa563129fea | |
parent | c0e9b374f16b139dc298c8c953f36b519b80793e (diff) | |
download | nextcloud-server-7753b93aa6f6a7815bed8b649212037f681b5560.tar.gz nextcloud-server-7753b93aa6f6a7815bed8b649212037f681b5560.zip |
PrivateData to app
* PrivateData is an app now: https://github.com/nextcloud/privatedata
* No need to load the OCS routes.php (as there is none!)
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
-rw-r--r-- | db_structure.xml | 68 | ||||
-rw-r--r-- | lib/composer/composer/autoload_classmap.php | 1 | ||||
-rw-r--r-- | lib/composer/composer/autoload_static.php | 1 | ||||
-rw-r--r-- | lib/private/OCS/PrivateData.php | 114 | ||||
-rw-r--r-- | lib/private/Route/Router.php | 2 | ||||
-rw-r--r-- | lib/private/legacy/ocs/privatedata.php | 28 | ||||
-rw-r--r-- | ocs/routes.php | 69 | ||||
-rw-r--r-- | tests/lib/OCS/PrivatedataTest.php | 172 |
8 files changed, 0 insertions, 455 deletions
diff --git a/db_structure.xml b/db_structure.xml index ac7f4b3c71b..65bdb69d95d 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -1589,74 +1589,6 @@ <table> <!-- - Namespaced Key-Value Store for arbitrary data. - - Keys are namespaced per userid and appid. - - E.g. (admin, files, foo) -> bar - --> - <name>*dbprefix*privatedata</name> - - <declaration> - - <field> - <name>keyid</name> - <type>integer</type> - <default>0</default> - <notnull>true</notnull> - <unsigned>true</unsigned> - <length>4</length> - <autoincrement>1</autoincrement> - </field> - - <!-- Foreign Key users::uid --> - <field> - <name>user</name> - <type>text</type> - <default></default> - <notnull>true</notnull> - <length>64</length> - </field> - - <field> - <name>app</name> - <type>text</type> - <default></default> - <notnull>true</notnull> - <length>255</length> - </field> - - <field> - <name>key</name> - <type>text</type> - <default></default> - <notnull>true</notnull> - <length>255</length> - </field> - - <field> - <name>value</name> - <type>text</type> - <default></default> - <notnull>true</notnull> - <length>255</length> - </field> - - <index> - <primary>true</primary> - <unique>true</unique> - <name>keyid_index</name> - <field> - <name>keyid</name> - <sorting>ascending</sorting> - </field> - </index> - - </declaration> - - </table> - - <table> - - <!-- Table for storing transactional file locking --> <name>*dbprefix*file_locks</name> diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 5bfabba2e01..20e4f4358b3 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -706,7 +706,6 @@ return array( 'OC\\OCS\\CoreCapabilities' => $baseDir . '/lib/private/OCS/CoreCapabilities.php', 'OC\\OCS\\DiscoveryService' => $baseDir . '/lib/private/OCS/DiscoveryService.php', 'OC\\OCS\\Exception' => $baseDir . '/lib/private/OCS/Exception.php', - 'OC\\OCS\\PrivateData' => $baseDir . '/lib/private/OCS/PrivateData.php', 'OC\\OCS\\Provider' => $baseDir . '/lib/private/OCS/Provider.php', 'OC\\OCS\\Result' => $baseDir . '/lib/private/OCS/Result.php', 'OC\\PreviewManager' => $baseDir . '/lib/private/PreviewManager.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 2c7ffc420fd..6eb8b44196a 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -736,7 +736,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\OCS\\CoreCapabilities' => __DIR__ . '/../../..' . '/lib/private/OCS/CoreCapabilities.php', 'OC\\OCS\\DiscoveryService' => __DIR__ . '/../../..' . '/lib/private/OCS/DiscoveryService.php', 'OC\\OCS\\Exception' => __DIR__ . '/../../..' . '/lib/private/OCS/Exception.php', - 'OC\\OCS\\PrivateData' => __DIR__ . '/../../..' . '/lib/private/OCS/PrivateData.php', 'OC\\OCS\\Provider' => __DIR__ . '/../../..' . '/lib/private/OCS/Provider.php', 'OC\\OCS\\Result' => __DIR__ . '/../../..' . '/lib/private/OCS/Result.php', 'OC\\PreviewManager' => __DIR__ . '/../../..' . '/lib/private/PreviewManager.php', diff --git a/lib/private/OCS/PrivateData.php b/lib/private/OCS/PrivateData.php deleted file mode 100644 index 0f5c48b1218..00000000000 --- a/lib/private/OCS/PrivateData.php +++ /dev/null @@ -1,114 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Andreas Fischer <bantu@owncloud.com> - * @author Bart Visscher <bartv@thisnet.nl> - * @author Frank Karlitschek <frank@karlitschek.de> - * @author Lukas Reschke <lukas@statuscode.ch> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Tom Needham <tom@owncloud.com> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -namespace OC\OCS; - -class PrivateData { - - /** - * read keys - * test: curl http://login:passwd@oc/core/ocs/v1.php/privatedata/getattribute/testy/123 - * test: curl http://login:passwd@oc/core/ocs/v1.php/privatedata/getattribute/testy - * @param array $parameters The OCS parameter - * @return \OC_OCS_Result - */ - public static function get($parameters) { - $user = \OC_User::getUser(); - $app = addslashes(strip_tags($parameters['app'])); - $key = isset($parameters['key']) ? addslashes(strip_tags($parameters['key'])) : null; - - if(empty($key)) { - $query = \OCP\DB::prepare('SELECT `key`, `app`, `value` FROM `*PREFIX*privatedata` WHERE `user` = ? AND `app` = ? '); - $result = $query->execute(array($user, $app)); - } else { - $query = \OCP\DB::prepare('SELECT `key`, `app`, `value` FROM `*PREFIX*privatedata` WHERE `user` = ? AND `app` = ? AND `key` = ? '); - $result = $query->execute(array($user, $app, $key)); - } - - $xml = array(); - while ($row = $result->fetchRow()) { - $data=array(); - $data['key']=$row['key']; - $data['app']=$row['app']; - $data['value']=$row['value']; - $xml[] = $data; - } - - return new Result($xml); - } - - /** - * set a key - * test: curl http://login:passwd@oc/core/ocs/v1.php/privatedata/setattribute/testy/123 --data "value=foobar" - * @param array $parameters The OCS parameter - * @return \OC_OCS_Result - */ - public static function set($parameters) { - $user = \OC_User::getUser(); - $app = addslashes(strip_tags($parameters['app'])); - $key = addslashes(strip_tags($parameters['key'])); - $value = (string)$_POST['value']; - - // update in DB - $query = \OCP\DB::prepare('UPDATE `*PREFIX*privatedata` SET `value` = ? WHERE `user` = ? AND `app` = ? AND `key` = ?'); - $numRows = $query->execute(array($value, $user, $app, $key)); - - if ($numRows === false || $numRows === 0) { - // store in DB - $query = \OCP\DB::prepare('INSERT INTO `*PREFIX*privatedata` (`user`, `app`, `key`, `value`)' . ' VALUES(?, ?, ?, ?)'); - $query->execute(array($user, $app, $key, $value)); - } - - return new Result(null, 100); - } - - /** - * delete a key - * test: curl http://login:passwd@oc/core/ocs/v1.php/privatedata/deleteattribute/testy/123 --data "post=1" - * @param array $parameters The OCS parameter - * @return \OC_OCS_Result - */ - public static function delete($parameters) { - $user = \OC_User::getUser(); - if (!isset($parameters['app']) or !isset($parameters['key'])) { - //key and app are NOT optional here - return new Result(null, 101); - } - - $app = addslashes(strip_tags($parameters['app'])); - $key = addslashes(strip_tags($parameters['key'])); - - // delete in DB - $query = \OCP\DB::prepare('DELETE FROM `*PREFIX*privatedata` WHERE `user` = ? AND `app` = ? AND `key` = ? '); - $query->execute(array($user, $app, $key )); - - return new Result(null, 100); - } -} - diff --git a/lib/private/Route/Router.php b/lib/private/Route/Router.php index 71aabe15c51..34ffd244eb7 100644 --- a/lib/private/Route/Router.php +++ b/lib/private/Route/Router.php @@ -171,8 +171,6 @@ class Router implements IRouter { $this->root->addCollection($collection); } if ($this->loaded) { - // include ocs routes, must be loaded last for /ocs prefix - require_once __DIR__ . '/../../../ocs/routes.php'; $collection = $this->getCollection('ocs'); $collection->addPrefix('/ocs'); $this->root->addCollection($collection); diff --git a/lib/private/legacy/ocs/privatedata.php b/lib/private/legacy/ocs/privatedata.php deleted file mode 100644 index 3571c842b9f..00000000000 --- a/lib/private/legacy/ocs/privatedata.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -/** - * @deprecated Since 9.1.0 use \OC\OCS\PrivateData - */ -class OC_OCS_Privatedata extends \OC\OCS\PrivateData { -} diff --git a/ocs/routes.php b/ocs/routes.php deleted file mode 100644 index 932c4053013..00000000000 --- a/ocs/routes.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Bjoern Schiessle <bjoern@schiessle.org> - * @author Björn Schießle <bjoern@schiessle.org> - * @author Christopher Schäpers <kondou@ts.unde.re> - * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Tom Needham <tom@owncloud.com> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -use OCP\API; - -// Privatedata -API::register( - 'get', - '/privatedata/getattribute', - array('OC_OCS_Privatedata', 'get'), - 'core', - API::USER_AUTH, - array('app' => '', 'key' => '') - ); -API::register( - 'get', - '/privatedata/getattribute/{app}', - array('OC_OCS_Privatedata', 'get'), - 'core', - API::USER_AUTH, - array('key' => '') - ); -API::register( - 'get', - '/privatedata/getattribute/{app}/{key}', - array('OC_OCS_Privatedata', 'get'), - 'core', - API::USER_AUTH - ); -API::register( - 'post', - '/privatedata/setattribute/{app}/{key}', - array('OC_OCS_Privatedata', 'set'), - 'core', - API::USER_AUTH - ); -API::register( - 'post', - '/privatedata/deleteattribute/{app}/{key}', - array('OC_OCS_Privatedata', 'delete'), - 'core', - API::USER_AUTH - ); diff --git a/tests/lib/OCS/PrivatedataTest.php b/tests/lib/OCS/PrivatedataTest.php deleted file mode 100644 index 0b3b23b8804..00000000000 --- a/tests/lib/OCS/PrivatedataTest.php +++ /dev/null @@ -1,172 +0,0 @@ -<?php - /** - * ownCloud - * - * @author Thomas Müller - * @copyright 2013 Thomas Müller deepdiver@owncloud.com - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE - * License as published by the Free Software Foundation; either - * version 3 of the License, or any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU AFFERO GENERAL PUBLIC LICENSE for more details. - * - * You should have received a copy of the GNU Affero General Public - * License along with this library. If not, see <http://www.gnu.org/licenses/>. - * - */ - -namespace Test\OCS; - -use OC_OCS_Privatedata; - -/** - * Class PrivatedataTest - * - * @group DB - */ -class PrivatedataTest extends \Test\TestCase { - private $appKey; - - protected function setUp() { - parent::setUp(); - \OC::$server->getSession()->set('user_id', 'user1'); - $this->appKey = $this->getUniqueID('app'); - } - - public function testGetEmptyOne() { - $params = array('app' => $this->appKey, 'key' => '123'); - $result = OC_OCS_Privatedata::get($params); - $this->assertOcsResult(0, $result); - } - - public function testGetEmptyAll() { - $params = array('app' => $this->appKey); - $result = OC_OCS_Privatedata::get($params); - $this->assertOcsResult(0, $result); - } - - public function testSetOne() { - $_POST = array('value' => 123456789); - $params = array('app' => $this->appKey, 'key' => 'k-1'); - $result = OC_OCS_Privatedata::set($params); - $this->assertEquals(100, $result->getStatusCode()); - - $result = OC_OCS_Privatedata::get($params); - $this->assertOcsResult(1, $result); - } - - public function testSetExisting() { - $_POST = array('value' => 123456789); - $params = array('app' => $this->appKey, 'key' => 'k-10'); - $result = OC_OCS_Privatedata::set($params); - $this->assertEquals(100, $result->getStatusCode()); - - $result = OC_OCS_Privatedata::get($params); - $this->assertOcsResult(1, $result); - $data = $result->getData(); - $data = $data[0]; - $this->assertEquals('123456789', $data['value']); - - $_POST = array('value' => 'updated'); - $params = array('app' => $this->appKey, 'key' => 'k-10'); - $result = OC_OCS_Privatedata::set($params); - $this->assertEquals(100, $result->getStatusCode()); - - $result = OC_OCS_Privatedata::get($params); - $this->assertOcsResult(1, $result); - $data = $result->getData(); - $data = $data[0]; - $this->assertEquals('updated', $data['value']); - } - - public function testSetSameValue() { - $_POST = array('value' => 123456789); - $params = array('app' => $this->appKey, 'key' => 'k-10'); - $result = OC_OCS_Privatedata::set($params); - $this->assertEquals(100, $result->getStatusCode()); - - $result = OC_OCS_Privatedata::get($params); - $this->assertOcsResult(1, $result); - $data = $result->getData(); - $data = $data[0]; - $this->assertEquals('123456789', $data['value']); - - // set the same value again - $_POST = array('value' => 123456789); - $params = array('app' => $this->appKey, 'key' => 'k-10'); - $result = OC_OCS_Privatedata::set($params); - $this->assertEquals(100, $result->getStatusCode()); - - $result = OC_OCS_Privatedata::get($params); - $this->assertOcsResult(1, $result); - $data = $result->getData(); - $data = $data[0]; - $this->assertEquals('123456789', $data['value']); - } - - public function testSetMany() { - $_POST = array('value' => 123456789); - - // set key 'k-1' - $params = array('app' => $this->appKey, 'key' => 'k-1'); - $result = OC_OCS_Privatedata::set($params); - $this->assertEquals(100, $result->getStatusCode()); - - // set key 'k-2' - $params = array('app' => $this->appKey, 'key' => 'k-2'); - $result = OC_OCS_Privatedata::set($params); - $this->assertEquals(100, $result->getStatusCode()); - - // query for all - $params = array('app' => $this->appKey); - $result = OC_OCS_Privatedata::get($params); - $this->assertOcsResult(2, $result); - } - - public function testDelete() { - $_POST = array('value' => 123456789); - - // set key 'k-1' - $params = array('app' => $this->appKey, 'key' => 'k-3'); - $result = OC_OCS_Privatedata::set($params); - $this->assertEquals(100, $result->getStatusCode()); - - $result = OC_OCS_Privatedata::delete($params); - $this->assertEquals(100, $result->getStatusCode()); - - $result = OC_OCS_Privatedata::get($params); - $this->assertOcsResult(0, $result); - } - - /** - * @dataProvider deleteWithEmptyKeysProvider - */ - public function testDeleteWithEmptyKeys($params) { - $result = OC_OCS_Privatedata::delete($params); - $this->assertEquals(101, $result->getStatusCode()); - } - - public function deleteWithEmptyKeysProvider() { - return array( - array(array()), - array(array('app' => '123')), - array(array('key' => '123')), - ); - } - - /** - * @param \OC_OCS_Result $result - * @param integer $expectedArraySize - */ - public function assertOcsResult($expectedArraySize, $result) { - $this->assertEquals(100, $result->getStatusCode()); - $data = $result->getData(); - $this->assertTrue(is_array($data)); - $this->assertEquals($expectedArraySize, sizeof($data)); - } -} |