d2d.emegrendeles.hu/database/seeders/FeatureFlagSeeder.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'],
],
);
}
}