From 7d3e40c0658a4195a38458a5512894c91147ea2d Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 9 Dec 2015 16:08:14 +0100 Subject: Add an OCS app for testing instead of using sudo and exec --- apps/testing/appinfo/info.xml | 12 +++++++ apps/testing/appinfo/routes.php | 46 +++++++++++++++++++++++++++ apps/testing/config.php | 70 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 128 insertions(+) create mode 100644 apps/testing/appinfo/info.xml create mode 100644 apps/testing/appinfo/routes.php create mode 100644 apps/testing/config.php (limited to 'apps/testing') diff --git a/apps/testing/appinfo/info.xml b/apps/testing/appinfo/info.xml new file mode 100644 index 00000000000..b11ec2f88e6 --- /dev/null +++ b/apps/testing/appinfo/info.xml @@ -0,0 +1,12 @@ + + + testing + QA Testing + This app is only for testing! It is dangerous to have it enabled in a live instance + AGPL + Joas Schilling + 0.1.0 + + + + diff --git a/apps/testing/appinfo/routes.php b/apps/testing/appinfo/routes.php new file mode 100644 index 00000000000..b6f20d04ef2 --- /dev/null +++ b/apps/testing/appinfo/routes.php @@ -0,0 +1,46 @@ + + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @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 + * + */ + +namespace OCA\Testing\AppInfo; + +use OCA\Testing\Config; +use OCP\API; + +$config = new Config( + \OC::$server->getConfig(), + \OC::$server->getRequest() +); + +API::register( + 'post', + '/apps/testing/api/v1/app/{appid}/{configkey}', + [$config, 'setAppValue'], + 'testing', + API::ADMIN_AUTH +); + +API::register( + 'delete', + '/apps/testing/api/v1/app/{appid}/{configkey}', + [$config, 'deleteAppValue'], + 'testing', + API::ADMIN_AUTH +); diff --git a/apps/testing/config.php b/apps/testing/config.php new file mode 100644 index 00000000000..068cb28e04b --- /dev/null +++ b/apps/testing/config.php @@ -0,0 +1,70 @@ + + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @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 + * + */ + +namespace OCA\Testing; + +use OCP\IConfig; +use OCP\IRequest; + +class Config { + + /** @var IConfig */ + private $config; + + /** @var IRequest */ + private $request; + + /** + * @param IConfig $config + * @param IRequest $request + */ + public function __construct(IConfig $config, IRequest $request) { + $this->config = $config; + $this->request = $request; + } + + /** + * @param array $parameters + * @return \OC_OCS_Result + */ + public function setAppValue($parameters) { + $app = $parameters['appid']; + $configKey = $parameters['configkey']; + + $value = $this->request->getParam('value'); + $this->config->setAppValue($app, $configKey, $value); + + return new \OC_OCS_Result(); + } + + /** + * @param array $parameters + * @return \OC_OCS_Result + */ + public function deleteAppValue($parameters) { + $app = $parameters['appid']; + $configKey = $parameters['configkey']; + + $this->config->deleteAppValue($app, $configKey); + + return new \OC_OCS_Result(); + } +} -- cgit v1.2.3