Allow configuring default enabled extensions as part of installation (#2757)

This is needed for the testing library
This commit is contained in:
Alexander Skvortsov 2021-04-07 22:47:54 -04:00 committed by GitHub
parent 9a9a644c56
commit 809e0d2ae0
2 changed files with 34 additions and 20 deletions

View File

@ -22,6 +22,7 @@ class Installation
private $debug = false;
private $baseUrl;
private $customSettings = [];
private $enabledExtensions = null;
/** @var DatabaseConfig */
private $dbConfig;
@ -78,6 +79,13 @@ class Installation
return $this;
}
public function extensions($enabledExtensions)
{
$this->enabledExtensions = $enabledExtensions;
return $this;
}
public function adminUser(AdminUser $admin)
{
$this->adminUser = $admin;
@ -152,7 +160,7 @@ class Installation
});
$pipeline->pipe(function () {
return new Steps\EnableBundledExtensions($this->db, $this->paths->vendor, $this->getAssetPath());
return new Steps\EnableBundledExtensions($this->db, $this->paths->vendor, $this->getAssetPath(), $this->enabledExtensions);
});
return $pipeline;

View File

@ -22,6 +22,23 @@ use League\Flysystem\Filesystem;
class EnableBundledExtensions implements Step
{
const EXTENSION_WHITELIST = [
'flarum-approval',
'flarum-bbcode',
'flarum-emoji',
'flarum-lang-english',
'flarum-flags',
'flarum-likes',
'flarum-lock',
'flarum-markdown',
'flarum-mentions',
'flarum-statistics',
'flarum-sticky',
'flarum-subscriptions',
'flarum-suspend',
'flarum-tags',
];
/**
* @var ConnectionInterface
*/
@ -37,11 +54,17 @@ class EnableBundledExtensions implements Step
*/
private $assetPath;
public function __construct(ConnectionInterface $database, $vendorPath, $assetPath)
/**
* @var string[]|null
*/
private $enabledExtensions;
public function __construct(ConnectionInterface $database, $vendorPath, $assetPath, $enabledExtensions = null)
{
$this->database = $database;
$this->vendorPath = $vendorPath;
$this->assetPath = $assetPath;
$this->enabledExtensions = $enabledExtensions ?? self::EXTENSION_WHITELIST;
}
public function getMessage()
@ -66,23 +89,6 @@ class EnableBundledExtensions implements Step
);
}
const EXTENSION_WHITELIST = [
'flarum-approval',
'flarum-bbcode',
'flarum-emoji',
'flarum-lang-english',
'flarum-flags',
'flarum-likes',
'flarum-lock',
'flarum-markdown',
'flarum-mentions',
'flarum-statistics',
'flarum-sticky',
'flarum-subscriptions',
'flarum-suspend',
'flarum-tags',
];
/**
* @return \Illuminate\Support\Collection
*/
@ -109,7 +115,7 @@ class EnableBundledExtensions implements Step
return $extension;
})->filter(function (Extension $extension) {
return in_array($extension->getId(), self::EXTENSION_WHITELIST);
return in_array($extension->getId(), $this->enabledExtensions);
})->sortBy(function (Extension $extension) {
return $extension->getTitle();
})->mapWithKeys(function (Extension $extension) {