diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-02-21 15:33:12 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2014-02-21 15:33:12 +0100 |
commit | 3980a7d9c6a20e7c0c9b92342e59e2a7ec443667 (patch) | |
tree | fa09b8f5a1a3d5695ce1278122d05fea7a1c8407 /core/ajax/appconfig.php | |
parent | 1331de554c0ab619df1826424e502803535481e2 (diff) | |
parent | aa0bcf7ba45d004b0c0226fd07696f9f224f9c1c (diff) | |
download | nextcloud-server-3980a7d9c6a20e7c0c9b92342e59e2a7ec443667.tar.gz nextcloud-server-3980a7d9c6a20e7c0c9b92342e59e2a7ec443667.zip |
Merge branch 'master' into folderid-reuse
Diffstat (limited to 'core/ajax/appconfig.php')
-rw-r--r-- | core/ajax/appconfig.php | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/core/ajax/appconfig.php b/core/ajax/appconfig.php index 4f26dedc797..05b7572c6d7 100644 --- a/core/ajax/appconfig.php +++ b/core/ajax/appconfig.php @@ -9,28 +9,43 @@ OC_Util::checkAdminUser(); OCP\JSON::callCheck(); $action=isset($_POST['action'])?$_POST['action']:$_GET['action']; + +if(isset($_POST['app']) || isset($_GET['app'])) { + $app=OC_App::cleanAppId(isset($_POST['app'])?$_POST['app']:$_GET['app']); +} + +// An admin should not be able to add remote and public services +// on its own. This should only be possible programmatically. +// This change is due the fact that an admin may not be expected +// to execute arbitrary code in every environment. +if($app === 'core' && isset($_POST['key']) &&(substr($_POST['key'],0,7) === 'remote_' || substr($_POST['key'],0,7) === 'public_')) { + OC_JSON::error(array('data' => array('message' => 'Unexpected error!'))); + return; +} + $result=false; switch($action) { case 'getValue': - $result=OC_Appconfig::getValue($_GET['app'], $_GET['key'], $_GET['defaultValue']); + $result=OC_Appconfig::getValue($app, $_GET['key'], $_GET['defaultValue']); break; case 'setValue': - $result=OC_Appconfig::setValue($_POST['app'], $_POST['key'], $_POST['value']); + $result=OC_Appconfig::setValue($app, $_POST['key'], $_POST['value']); break; case 'getApps': $result=OC_Appconfig::getApps(); break; case 'getKeys': - $result=OC_Appconfig::getKeys($_GET['app']); + $result=OC_Appconfig::getKeys($app); break; case 'hasKey': - $result=OC_Appconfig::hasKey($_GET['app'], $_GET['key']); + $result=OC_Appconfig::hasKey($app, $_GET['key']); break; case 'deleteKey': - $result=OC_Appconfig::deleteKey($_POST['app'], $_POST['key']); + $result=OC_Appconfig::deleteKey($app, $_POST['key']); break; case 'deleteApp': - $result=OC_Appconfig::deleteApp($_POST['app']); + $result=OC_Appconfig::deleteApp($app); break; } OC_JSON::success(array('data'=>$result)); + |