diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-03-13 11:18:39 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-03-13 11:18:39 +0100 |
commit | 40b28897857cf81bafb23223a7a34fd19de02b13 (patch) | |
tree | c63ea583b79df8e9cedbf2c75a3b1da94ef608fe | |
parent | c546f0bf46a51dc297be15aa1acbca5ed9a84de9 (diff) | |
download | nextcloud-server-40b28897857cf81bafb23223a7a34fd19de02b13.tar.gz nextcloud-server-40b28897857cf81bafb23223a7a34fd19de02b13.zip |
shipped apps are now defined in core/shipped.json - the shipped tag in info.xml is ignored from now on - never trust an app :speak_no_evil:
-rw-r--r-- | core/shipped.json | 25 | ||||
-rw-r--r-- | lib/private/app.php | 17 |
2 files changed, 37 insertions, 5 deletions
diff --git a/core/shipped.json b/core/shipped.json new file mode 100644 index 00000000000..0674177a6c9 --- /dev/null +++ b/core/shipped.json @@ -0,0 +1,25 @@ +{ + "_comment" : "As shipped with owncloud-8.0.2.tar.bz2", + "core-version": "8.1.0.0", + "shippedApps": [ + "activity", + "files", + "files_external", + "files_pdfviewer", + "files_texteditor", + "files_versions", + "firstrunwizard", + "templateeditor", + "user_external", + "user_webdavauth external", + "files_encryption", + "files_locking", + "files_sharing", + "files_trashbin", + "files_videoviewer", + "gallery", + "provisioning_api", + "updater", + "user_ldap" + ] +} diff --git a/lib/private/app.php b/lib/private/app.php index 9ae4ae30d74..29bcf153464 100644 --- a/lib/private/app.php +++ b/lib/private/app.php @@ -42,6 +42,7 @@ class OC_App { static private $appTypes = array(); static private $loadedApps = array(); static private $altLogin = array(); + private static $shippedApps = null; /** * clean the appId @@ -182,12 +183,18 @@ class OC_App { * Check if an app that is installed is a shipped app or installed from the appstore. */ public static function isShipped($appId) { - $info = self::getAppInfo($appId); - if (isset($info['shipped']) && $info['shipped'] == 'true') { - return true; - } else { - return false; + if (is_null(self::$shippedApps)) { + $shippedJson = \OC::$SERVERROOT . '/core/shipped.json'; + if (file_exists($shippedJson)) { + self::$shippedApps = json_decode(file_get_contents($shippedJson), true); + self::$shippedApps = self::$shippedApps['shippedApps']; + } else { + self::$shippedApps = ['files', 'files_encryption', 'files_external', + 'files_sharing', 'files_trashbin', 'files_versions', 'provisioning_api', + 'user_ldap', 'user_webdavauth']; + } } + return in_array($appId, self::$shippedApps); } /** |