51 lines
2.1 KiB
PHP
51 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\FeatureFlag;
|
|
use App\Models\Role;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class FeatureFlagSeeder extends Seeder
|
|
{
|
|
/**
|
|
* A "developer" role és a "FeatureFlagAdmin" flag nélkül a feature flag
|
|
* admin felület (/admin/feature-flags) senki számára nem elérhető - a
|
|
* FeatureFlagPolicy/FeatureFlagOverridePolicy ezt a flaget nézi, egy
|
|
* ismeretlen (még nem seedelt) flag pedig mindenkinek inaktívnak számít.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
Role::firstOrCreate(
|
|
['name' => 'developer'],
|
|
['display_name' => 'Developer', 'description' => 'Fejlesztői jogosultság'],
|
|
);
|
|
|
|
FeatureFlag::updateOrCreate(
|
|
['name' => 'FeatureFlagAdmin'],
|
|
[
|
|
'label' => 'Feature flag admin felület',
|
|
'description' => 'A feature flag admin felület (/admin/feature-flags) elérését szabályozza. Enélkül senki nem éri el a felületet.',
|
|
'enabled' => true,
|
|
'stages' => null,
|
|
'roles' => ['developer'],
|
|
],
|
|
);
|
|
|
|
FeatureFlag::updateOrCreate(
|
|
['name' => 'SupplierCustomerCode'],
|
|
[
|
|
'label' => 'Beszállítói vevőkód (profitcenterenként)',
|
|
'description' => 'A profitcenterenkénti beszállítói vevőkód kezelését szabályozza a legacy és modern felületen a fejlesztés/rollout alatt. Átmeneti kapcsoló, a funkció véglegesítése után eltávolítható.',
|
|
// enabled=true + roles=['developer'] a FeatureFlagAdmin mintáját követi: az "enabled"
|
|
// egy globális kapcsoló (false esetén roles-tól függetlenül SENKI nem látja), tehát a
|
|
// "csak developer lássa rollout alatt" állapotot enabled=true + roles szűkítéssel kell
|
|
// kifejezni, nem enabled=false-fal (az utóbbi a developer usereket is kizárja).
|
|
'enabled' => true,
|
|
'stages' => null,
|
|
'roles' => ['developer'],
|
|
],
|
|
);
|
|
}
|
|
}
|