Browse Source

Merge pull request #34072 from nextcloud/enh/noid/default-enabled-2

set defaultEnabled in shipped.json
tags/v25.0.0beta7
Vincent Petry 1 year ago
parent
commit
d39f047af2
No account linked to committer's email address

+ 0
- 1
apps/comments/appinfo/info.xml View File

@@ -9,7 +9,6 @@
<licence>agpl</licence>
<author>Arthur Schiwon</author>
<author>Vincent Petry</author>
<default_enable/>
<types>
<logging/>
</types>

+ 0
- 1
apps/contactsinteraction/appinfo/info.xml View File

@@ -13,7 +13,6 @@
<types>
<dav/>
</types>
<default_enable/>
<category>integration</category>
<category>social</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>

+ 0
- 1
apps/dashboard/appinfo/info.xml View File

@@ -14,7 +14,6 @@ they like and change the background to their liking.]]></description>
<licence>agpl</licence>
<author>Julius Härtl</author>
<namespace>Dashboard</namespace>
<default_enable/>

<category>customization</category>


+ 0
- 1
apps/dav/appinfo/info.xml View File

@@ -9,7 +9,6 @@
<licence>agpl</licence>
<author>owncloud.org</author>
<namespace>DAV</namespace>
<default_enable/>
<types>
<filesystem/>
</types>

+ 0
- 1
apps/federation/appinfo/info.xml View File

@@ -9,7 +9,6 @@
<licence>agpl</licence>
<author>Bjoern Schiessle</author>
<namespace>Federation</namespace>
<default_enable/>

<types>
<authentication/>

+ 0
- 1
apps/files/appinfo/info.xml View File

@@ -9,7 +9,6 @@
<licence>agpl</licence>
<author>Robin Appelman</author>
<author>Vincent Petry</author>
<default_enable/>
<types>
<filesystem/>
</types>

+ 0
- 1
apps/files_sharing/appinfo/info.xml View File

@@ -14,7 +14,6 @@ Turning the feature off removes shared files and folders on the server for all s
<author>Michael Gapczynski</author>
<author>Bjoern Schiessle</author>
<namespace>Files_Sharing</namespace>
<default_enable/>
<types>
<filesystem/>
</types>

+ 0
- 1
apps/files_trashbin/appinfo/info.xml View File

@@ -13,7 +13,6 @@ To prevent a user from running out of disk space, the Deleted files app will not
<licence>agpl</licence>
<author>Bjoern Schiessle</author>
<namespace>Files_Trashbin</namespace>
<default_enable/>
<types>
<filesystem/>
<dav/>

+ 0
- 1
apps/files_versions/appinfo/info.xml View File

@@ -13,7 +13,6 @@
<author>Frank Karlitschek</author>
<author>Bjoern Schiessle</author>
<namespace>Files_Versions</namespace>
<default_enable/>
<types>
<filesystem/>
<dav/>

+ 0
- 1
apps/lookup_server_connector/appinfo/info.xml View File

@@ -9,7 +9,6 @@
<licence>agpl</licence>
<author>Bjoern Schiessle</author>
<namespace>LookupServerConnector</namespace>
<default_enable/>
<types>
<authentication/>
</types>

+ 0
- 1
apps/oauth2/appinfo/info.xml View File

@@ -9,7 +9,6 @@
<licence>agpl</licence>
<author>Lukas Reschke</author>
<namespace>OAuth2</namespace>
<default_enable/>
<types>
<authentication/>
</types>

+ 0
- 1
apps/provisioning_api/appinfo/info.xml View File

@@ -17,7 +17,6 @@
<licence>agpl</licence>
<author>Tom Needham</author>
<namespace>Provisioning_API</namespace>
<default_enable/>
<types>
<prevent_group_restriction/>
</types>

+ 0
- 1
apps/settings/appinfo/info.xml View File

@@ -9,7 +9,6 @@
<licence>agpl</licence>
<author>Nextcloud</author>
<namespace>Settings</namespace>
<default_enable/>

<category>customization</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>

+ 0
- 1
apps/sharebymail/appinfo/info.xml View File

@@ -9,7 +9,6 @@
<licence>agpl</licence>
<author>Bjoern Schiessle</author>
<namespace>ShareByMail</namespace>
<default_enable/>

<types>
<filesystem/>

+ 0
- 1
apps/systemtags/appinfo/info.xml View File

@@ -11,7 +11,6 @@
<author>Vincent Petry</author>
<author>Joas Schilling</author>
<namespace>SystemTags</namespace>
<default_enable/>
<types>
<logging/>
</types>

+ 0
- 1
apps/theming/appinfo/info.xml View File

@@ -9,7 +9,6 @@
<licence>agpl</licence>
<author>Nextcloud</author>
<namespace>Theming</namespace>
<default_enable/>

<types>
<logging/>

+ 0
- 1
apps/updatenotification/appinfo/info.xml View File

@@ -9,7 +9,6 @@
<licence>agpl</licence>
<author>Lukas Reschke</author>
<namespace>UpdateNotification</namespace>
<default_enable/>
<category>monitoring</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>

+ 0
- 1
apps/user_status/appinfo/info.xml View File

@@ -9,7 +9,6 @@
<licence>agpl</licence>
<author mail="oc.list@georgehrke.com" >Georg Ehrke</author>
<namespace>UserStatus</namespace>
<default_enable/>
<category>social</category>
<bugs>https://github.com/nextcloud/server</bugs>
<navigations>

+ 0
- 1
apps/weather_status/appinfo/info.xml View File

@@ -11,7 +11,6 @@
<licence>agpl</licence>
<author mail="eneiluj@posteo.net">Julien Veyssier</author>
<namespace>WeatherStatus</namespace>
<default_enable/>
<category>integration</category>
<category>dashboard</category>
<bugs>https://github.com/nextcloud/server</bugs>

+ 40
- 0
core/shipped.json View File

@@ -47,6 +47,46 @@
"weather_status",
"workflowengine"
],
"defaultEnabled": [
"activity",
"circles",
"comments",
"contactsinteraction",
"dashboard",
"dav",
"federation",
"files",
"files_pdfviewer",
"files_rightclick",
"files_sharing",
"files_trashbin",
"files_versions",
"files_videoplayer",
"firstrunwizard",
"logreader",
"lookup_server_connector",
"nextcloud_announcements",
"notifications",
"oauth2",
"password_policy",
"photos",
"privacy",
"provisioning_api",
"recommendations",
"related_resources",
"serverinfo",
"settings",
"sharebymail",
"support",
"survey_client",
"systemtags",
"text",
"theming",
"updatenotification",
"user_status",
"viewer",
"weather_status"
],
"alwaysEnabled": [
"files",
"cloud_federation_api",

+ 20
- 2
lib/private/App/AppManager.php View File

@@ -13,6 +13,7 @@
* @author Julius Haertl <jus@bitgrid.net>
* @author Julius Härtl <jus@bitgrid.net>
* @author Lukas Reschke <lukas@statuscode.ch>
* @author Maxence Lange <maxence@artificial-owl.com>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Robin Appelman <robin@icewind.nl>
* @author Roeland Jago Douma <roeland@famdouma.nl>
@@ -91,8 +92,8 @@ class AppManager implements IAppManager {
/** @var string[] */
private $shippedApps;

/** @var string[] */
private $alwaysEnabled;
private array $alwaysEnabled = [];
private array $defaultEnabled = [];

/** @var array */
private $appInfos = [];
@@ -574,6 +575,7 @@ class AppManager implements IAppManager {
$content = json_decode(file_get_contents($shippedJson), true);
$this->shippedApps = $content['shippedApps'];
$this->alwaysEnabled = $content['alwaysEnabled'];
$this->defaultEnabled = $content['defaultEnabled'];
}
}

@@ -584,4 +586,20 @@ class AppManager implements IAppManager {
$this->loadShippedJson();
return $this->alwaysEnabled;
}

/**
* @inheritdoc
*/
public function isDefaultEnabled(string $appId): bool {
return (in_array($appId, $this->getDefaultEnabledApps()));
}

/**
* @inheritdoc
*/
public function getDefaultEnabledApps():array {
$this->loadShippedJson();

return $this->defaultEnabled;
}
}

+ 1
- 2
lib/private/Installer.php View File

@@ -545,8 +545,7 @@ class Installer {
if ($filename[0] !== '.' and is_dir($app_dir['path']."/$filename")) {
if (file_exists($app_dir['path']."/$filename/appinfo/info.xml")) {
if ($config->getAppValue($filename, "installed_version", null) === null) {
$info = OC_App::getAppInfo($filename);
$enabled = isset($info['default_enable']);
$enabled = $appManager->isDefaultEnabled($filename);
if (($enabled || in_array($filename, $appManager->getAlwaysEnabledApps()))
&& $config->getAppValue($filename, 'enabled') !== 'no') {
if ($softErrors) {

+ 17
- 0
lib/public/App/IAppManager.php View File

@@ -83,6 +83,17 @@ interface IAppManager {
*/
public function isInstalled($appId);

/**
* Check if an app should be enabled by default
*
* Notice: This actually checks if the app should be enabled by default
* and not if currently installed/enabled
*
* @param string $appId ID of the app
* @since 25.0.0
*/
public function isDefaultEnabled(string $appId):bool;

/**
* Enable an app for every user
*
@@ -178,6 +189,12 @@ interface IAppManager {
*/
public function getAlwaysEnabledApps();

/**
* @return string[] app IDs
* @since 25.0.0
*/
public function getDefaultEnabledApps(): array;

/**
* @param \OCP\IGroup $group
* @return String[]

+ 1
- 1
tests/acceptance/features/bootstrap/AppsManagementContext.php View File

@@ -243,7 +243,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
*/
public function iSeeTheAppBundles() {
Assert::assertTrue(
$this->actor->find(self::rowForApp('Auditing / Logging'), 2)->isVisible()
$this->actor->find(self::rowForApp('Auditing / Logging'), 10)->isVisible()
);
Assert::assertTrue(
$this->actor->find(self::rowForApp('LDAP user and group backend'), 2)->isVisible()

Loading…
Cancel
Save