61 lines
1.6 KiB
PHP
61 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]);
|
|
}
|
|
|
|
$this->call([
|
|
AdvanceTypeSeeder::class,
|
|
]);
|
|
|
|
// 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
|
|
$this->call([UserSeeder::class]);
|
|
}
|
|
} |