new_malcomm_oline/database/seeders/DatabaseSeeder.php

60 lines
1.6 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\PermissionRegistrar;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*/
public function run(): void
{
// Resetujemy pamięć podręczną uprawnień Spatie
app()[PermissionRegistrar::class]->forgetCachedPermissions();
// 1. Tworzenie uprawnień (Permissions)
$permissions = [
'raporty_access',
'flota_access',
'zaliczki_access',
'users_access',
];
foreach ($permissions as $permission) {
Permission::firstOrCreate(['name' => $permission]);
}
// 2. Tworzenie ról (Roles)
$adminRole = Role::firstOrCreate(['name' => 'admin']);
$kierownikRole = Role::firstOrCreate(['name' => 'kierownik']);
$pracownikRole = Role::firstOrCreate(['name' => 'pracownik']);
// 3. Przypisywanie uprawnień do ról
$adminRole->syncPermissions(Permission::all());
$kierownikRole->syncPermissions([
'users_access',
'raporty_access',
'flota_access',
'zaliczki_access',
]);
$pracownikRole->syncPermissions([
'raporty_access',
'zaliczki_access',
]);
// 4. Wywołanie seedera użytkowników i pojazdów
$this->call([
AdvanceTypeSeeder::class,
UserSeeder::class,
AdvanceSeeder::class,
VehicleSeeder::class,
]);
}
}