summaryrefslogtreecommitdiffstats
path: root/lib/public
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2014-11-07 14:26:12 +0100
committerRobin Appelman <icewind@owncloud.com>2014-11-10 13:52:52 +0100
commit43eb375ace5c62201e2323b39a5f400b2bdc97b7 (patch)
tree9794ee71a7978fb31316da41935c448fea92601a /lib/public
parent2023878d537374b47494eb8ce44d3757b3692626 (diff)
downloadnextcloud-server-43eb375ace5c62201e2323b39a5f400b2bdc97b7.tar.gz
nextcloud-server-43eb375ace5c62201e2323b39a5f400b2bdc97b7.zip
Add \OC\App\Manager to handle enabling/disabling apps
Diffstat (limited to 'lib/public')
-rw-r--r--lib/public/app/iappmanager.php51
-rw-r--r--lib/public/iservercontainer.php7
2 files changed, 58 insertions, 0 deletions
diff --git a/lib/public/app/iappmanager.php b/lib/public/app/iappmanager.php
new file mode 100644
index 00000000000..ebd84a1ce9d
--- /dev/null
+++ b/lib/public/app/iappmanager.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\App;
+
+interface IAppManager {
+ /**
+ * Check if an app is enabled for user
+ *
+ * @param string $appId
+ * @param \OCP\IUser $user (optional) if not defined, the currently loggedin user will be used
+ * @return bool
+ */
+ public function isEnabledForUser($appId, $user = null);
+
+ /**
+ * Check if an app is installed in the instance
+ *
+ * @param string $appId
+ * @return bool
+ */
+ public function isInstalled($appId);
+
+ /**
+ * Enable an app for every user
+ *
+ * @param string $appId
+ */
+ public function enableApp($appId);
+
+ /**
+ * Enable an app only for specific groups
+ *
+ * @param string $appId
+ * @param \OCP\IGroup[] $groups
+ */
+ public function enableAppForGroups($appId, $groups);
+
+ /**
+ * Disable an app for every user
+ *
+ * @param string $appId
+ */
+ public function disableApp($appId);
+}
diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php
index 794bba6bfb6..b734d1b4161 100644
--- a/lib/public/iservercontainer.php
+++ b/lib/public/iservercontainer.php
@@ -291,4 +291,11 @@ interface IServerContainer {
* @return \OCP\ITempManager
*/
function getTempManager();
+
+ /**
+ * Get the app manager
+ *
+ * @return \OCP\App\IAppManager
+ */
+ function getAppManager();
}