summaryrefslogtreecommitdiffstats
path: root/settings/ajax/updateapp.php
diff options
context:
space:
mode:
Diffstat (limited to 'settings/ajax/updateapp.php')
-rw-r--r--settings/ajax/updateapp.php38
1 files changed, 31 insertions, 7 deletions
diff --git a/settings/ajax/updateapp.php b/settings/ajax/updateapp.php
index 91c342d5d07..5eb0a277cba 100644
--- a/settings/ajax/updateapp.php
+++ b/settings/ajax/updateapp.php
@@ -1,15 +1,39 @@
<?php
-
-OC_JSON::checkAdminUser();
+/**
+ * Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+OCP\JSON::checkAdminUser();
OCP\JSON::callCheck();
-$appid = $_POST['appid'];
-$appid = OC_App::cleanAppId($appid);
+if (!array_key_exists('appid', $_POST)) {
+ OCP\JSON::error(array(
+ 'message' => 'No AppId given!'
+ ));
+ exit;
+}
+
+$appId = $_POST['appid'];
+
+if (!is_numeric($appId)) {
+ $appId = OC_Appconfig::getValue($appId, 'ocsid', null);
+
+ if ($appId === null) {
+ OCP\JSON::error(array(
+ 'message' => 'No OCS-ID found for app!'
+ ));
+ exit;
+ }
+}
+
+$appId = OC_App::cleanAppId($appId);
-$result = OC_Installer::updateApp($appid);
+$result = OC_Installer::updateApp($appId);
if($result !== false) {
- OC_JSON::success(array('data' => array('appid' => $appid)));
+ OC_JSON::success(array('data' => array('appid' => $appId)));
} else {
- $l = OC_L10N::get('settings');
+ $l = OC_L10N::get('settings');
OC_JSON::error(array("data" => array( "message" => $l->t("Couldn't update app.") )));
}