set defaultEnabled in shipped.jsontags/v25.0.0beta7
@@ -9,7 +9,6 @@ | |||
<licence>agpl</licence> | |||
<author>Arthur Schiwon</author> | |||
<author>Vincent Petry</author> | |||
<default_enable/> | |||
<types> | |||
<logging/> | |||
</types> |
@@ -13,7 +13,6 @@ | |||
<types> | |||
<dav/> | |||
</types> | |||
<default_enable/> | |||
<category>integration</category> | |||
<category>social</category> | |||
<bugs>https://github.com/nextcloud/server/issues</bugs> |
@@ -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> | |||
@@ -9,7 +9,6 @@ | |||
<licence>agpl</licence> | |||
<author>owncloud.org</author> | |||
<namespace>DAV</namespace> | |||
<default_enable/> | |||
<types> | |||
<filesystem/> | |||
</types> |
@@ -9,7 +9,6 @@ | |||
<licence>agpl</licence> | |||
<author>Bjoern Schiessle</author> | |||
<namespace>Federation</namespace> | |||
<default_enable/> | |||
<types> | |||
<authentication/> |
@@ -9,7 +9,6 @@ | |||
<licence>agpl</licence> | |||
<author>Robin Appelman</author> | |||
<author>Vincent Petry</author> | |||
<default_enable/> | |||
<types> | |||
<filesystem/> | |||
</types> |
@@ -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> |
@@ -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/> |
@@ -13,7 +13,6 @@ | |||
<author>Frank Karlitschek</author> | |||
<author>Bjoern Schiessle</author> | |||
<namespace>Files_Versions</namespace> | |||
<default_enable/> | |||
<types> | |||
<filesystem/> | |||
<dav/> |
@@ -9,7 +9,6 @@ | |||
<licence>agpl</licence> | |||
<author>Bjoern Schiessle</author> | |||
<namespace>LookupServerConnector</namespace> | |||
<default_enable/> | |||
<types> | |||
<authentication/> | |||
</types> |
@@ -9,7 +9,6 @@ | |||
<licence>agpl</licence> | |||
<author>Lukas Reschke</author> | |||
<namespace>OAuth2</namespace> | |||
<default_enable/> | |||
<types> | |||
<authentication/> | |||
</types> |
@@ -17,7 +17,6 @@ | |||
<licence>agpl</licence> | |||
<author>Tom Needham</author> | |||
<namespace>Provisioning_API</namespace> | |||
<default_enable/> | |||
<types> | |||
<prevent_group_restriction/> | |||
</types> |
@@ -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> |
@@ -9,7 +9,6 @@ | |||
<licence>agpl</licence> | |||
<author>Bjoern Schiessle</author> | |||
<namespace>ShareByMail</namespace> | |||
<default_enable/> | |||
<types> | |||
<filesystem/> |
@@ -11,7 +11,6 @@ | |||
<author>Vincent Petry</author> | |||
<author>Joas Schilling</author> | |||
<namespace>SystemTags</namespace> | |||
<default_enable/> | |||
<types> | |||
<logging/> | |||
</types> |
@@ -9,7 +9,6 @@ | |||
<licence>agpl</licence> | |||
<author>Nextcloud</author> | |||
<namespace>Theming</namespace> | |||
<default_enable/> | |||
<types> | |||
<logging/> |
@@ -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> |
@@ -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> |
@@ -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> |
@@ -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", |
@@ -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; | |||
} | |||
} |
@@ -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) { |
@@ -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[] |
@@ -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() |