summaryrefslogtreecommitdiffstats
path: root/settings/ajax
diff options
context:
space:
mode:
authorGeorg Ehrke <developer@georgehrke.com>2014-05-21 12:14:10 +0200
committerGeorg Ehrke <developer@georgehrke.com>2014-05-31 12:17:54 +0200
commit2bcfd8e084b27ed89cf6e62bc9ab2c681d5a8361 (patch)
treebff130f767536eca5892511e0de26bab317b9697 /settings/ajax
parentb9f059bd3ee75247058bd5eb9908f6c33ffa08e2 (diff)
downloadnextcloud-server-2bcfd8e084b27ed89cf6e62bc9ab2c681d5a8361.tar.gz
nextcloud-server-2bcfd8e084b27ed89cf6e62bc9ab2c681d5a8361.zip
make it possible to update shipped apps via the appstore
Diffstat (limited to 'settings/ajax')
-rw-r--r--settings/ajax/disableapp.php11
-rw-r--r--settings/ajax/installapp.php20
-rw-r--r--settings/ajax/uninstallapp.php20
-rw-r--r--settings/ajax/updateapp.php38
4 files changed, 80 insertions, 9 deletions
diff --git a/settings/ajax/disableapp.php b/settings/ajax/disableapp.php
index 466a719157d..263e2c27479 100644
--- a/settings/ajax/disableapp.php
+++ b/settings/ajax/disableapp.php
@@ -2,6 +2,13 @@
OC_JSON::checkAdminUser();
OCP\JSON::callCheck();
-OC_App::disable(OC_App::cleanAppId($_POST['appid']));
+if (!array_key_exists('appid', $_POST)) {
+ OC_JSON::error();
+ exit;
+}
-OC_JSON::success();
+$appId = $_POST['appid'];
+$appId = OC_App::cleanAppId($appId);
+
+OC_App::disable($appId);
+OC_JSON::success(); \ No newline at end of file
diff --git a/settings/ajax/installapp.php b/settings/ajax/installapp.php
new file mode 100644
index 00000000000..960080d7a7b
--- /dev/null
+++ b/settings/ajax/installapp.php
@@ -0,0 +1,20 @@
+<?php
+
+OC_JSON::checkAdminUser();
+OCP\JSON::callCheck();
+
+if (!array_key_exists('appid', $_POST)) {
+ OC_JSON::error();
+ exit;
+}
+
+$appId = $_POST['appid'];
+$appId = OC_App::cleanAppId($appId);
+
+$result = OC_App::installApp($appId);
+if($result !== false) {
+ OC_JSON::success(array('data' => array('appid' => $appId)));
+} else {
+ $l = OC_L10N::get('settings');
+ OC_JSON::error(array("data" => array( "message" => $l->t("Couldn't remove app.") )));
+}
diff --git a/settings/ajax/uninstallapp.php b/settings/ajax/uninstallapp.php
new file mode 100644
index 00000000000..11241571e85
--- /dev/null
+++ b/settings/ajax/uninstallapp.php
@@ -0,0 +1,20 @@
+<?php
+
+OC_JSON::checkAdminUser();
+OCP\JSON::callCheck();
+
+if (!array_key_exists('appid', $_POST)) {
+ OC_JSON::error();
+ exit;
+}
+
+$appId = $_POST['appid'];
+$appId = OC_App::cleanAppId($appId);
+
+$result = OC_App::removeApp($appId);
+if($result !== false) {
+ OC_JSON::success(array('data' => array('appid' => $appId)));
+} else {
+ $l = OC_L10N::get('settings');
+ OC_JSON::error(array("data" => array( "message" => $l->t("Couldn't remove app.") )));
+}
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.") )));
}