diff options
author | Joas Schilling <nickvergessen@owncloud.com> | 2015-12-09 16:08:14 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-12-11 16:20:04 +0100 |
commit | 7d3e40c0658a4195a38458a5512894c91147ea2d (patch) | |
tree | e1db765f01db70b20599b241a647d1c86a4bfd97 /apps/testing | |
parent | 0449dc387b7ca8de56ccf76084b542ca8455c885 (diff) | |
download | nextcloud-server-7d3e40c0658a4195a38458a5512894c91147ea2d.tar.gz nextcloud-server-7d3e40c0658a4195a38458a5512894c91147ea2d.zip |
Add an OCS app for testing instead of using sudo and exec
Diffstat (limited to 'apps/testing')
-rw-r--r-- | apps/testing/appinfo/info.xml | 12 | ||||
-rw-r--r-- | apps/testing/appinfo/routes.php | 46 | ||||
-rw-r--r-- | apps/testing/config.php | 70 |
3 files changed, 128 insertions, 0 deletions
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 @@ +<?xml version="1.0"?> +<info> + <id>testing</id> + <name>QA Testing</name> + <description>This app is only for testing! It is dangerous to have it enabled in a live instance</description> + <licence>AGPL</licence> + <author>Joas Schilling</author> + <version>0.1.0</version> + <dependencies> + <owncloud min-version="9.0" /> + </dependencies> +</info> 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 @@ +<?php +/** + * @author Joas Schilling <nickvergessen@owncloud.com> + * + * @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 <http://www.gnu.org/licenses/> + * + */ + +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 @@ +<?php +/** + * @author Joas Schilling <nickvergessen@owncloud.com> + * + * @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 <http://www.gnu.org/licenses/> + * + */ + +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(); + } +} |