153 lines
4.5 KiB
PHP
Executable File
153 lines
4.5 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
|
use Illuminate\Database\Seeder;
|
|
use Spatie\Permission\Models\Role;
|
|
use Spatie\Permission\Models\Permission;
|
|
|
|
class RoleSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
// Crea i ruoli base
|
|
$roles = [
|
|
'super-admin',
|
|
'admin',
|
|
'amministratore',
|
|
'collaboratore',
|
|
'impiegato',
|
|
'fornitore',
|
|
'condomino',
|
|
'inquilino',
|
|
'proprietario'
|
|
];
|
|
|
|
foreach ($roles as $roleName) {
|
|
Role::firstOrCreate(['name' => $roleName, 'guard_name' => 'web']);
|
|
}
|
|
|
|
// Crea permissions di base + permessi granulari (menu/aree)
|
|
$permissions = [
|
|
'view-dashboard',
|
|
'manage-stabili',
|
|
'manage-condomini',
|
|
'manage-users',
|
|
'view-reports',
|
|
'manage-tickets',
|
|
'manage-accounting',
|
|
|
|
// Contabilità (granulare)
|
|
'contabilita.gestioni',
|
|
'contabilita.prima-nota',
|
|
'contabilita.regole-prima-nota',
|
|
'contabilita.casse-banche',
|
|
'contabilita.fatture-elettroniche',
|
|
'contabilita.fatture-fornitori',
|
|
'contabilita.voci-spesa',
|
|
'contabilita.preventivi',
|
|
'contabilita.registro-ra',
|
|
|
|
// Deleghe specifiche (fuori gruppo)
|
|
'contabilita.bonifici.autorizza',
|
|
];
|
|
|
|
foreach ($permissions as $permissionName) {
|
|
Permission::firstOrCreate(['name' => $permissionName, 'guard_name' => 'web']);
|
|
}
|
|
|
|
// Assegna permissions ai ruoli
|
|
$superAdmin = Role::findByName('super-admin');
|
|
$superAdmin->givePermissionTo(Permission::all());
|
|
|
|
$admin = Role::findByName('admin');
|
|
$admin->givePermissionTo([
|
|
'view-dashboard',
|
|
'manage-stabili',
|
|
'manage-condomini',
|
|
'manage-users',
|
|
'view-reports',
|
|
'manage-tickets',
|
|
'manage-accounting',
|
|
|
|
// Contabilità (granulare)
|
|
'contabilita.gestioni',
|
|
'contabilita.prima-nota',
|
|
'contabilita.regole-prima-nota',
|
|
'contabilita.casse-banche',
|
|
'contabilita.fatture-elettroniche',
|
|
'contabilita.fatture-fornitori',
|
|
'contabilita.voci-spesa',
|
|
'contabilita.preventivi',
|
|
'contabilita.registro-ra',
|
|
]);
|
|
|
|
$amministratore = Role::findByName('amministratore');
|
|
$amministratore->givePermissionTo([
|
|
'view-dashboard',
|
|
'manage-stabili',
|
|
'manage-condomini',
|
|
'manage-users',
|
|
'view-reports',
|
|
'manage-tickets',
|
|
'manage-accounting',
|
|
|
|
// Contabilità (granulare)
|
|
'contabilita.gestioni',
|
|
'contabilita.prima-nota',
|
|
'contabilita.regole-prima-nota',
|
|
'contabilita.casse-banche',
|
|
'contabilita.fatture-elettroniche',
|
|
'contabilita.fatture-fornitori',
|
|
'contabilita.voci-spesa',
|
|
'contabilita.preventivi',
|
|
'contabilita.registro-ra',
|
|
|
|
// Deleghe specifiche
|
|
'contabilita.bonifici.autorizza',
|
|
]);
|
|
|
|
$collaboratore = Role::findByName('collaboratore');
|
|
$collaboratore->givePermissionTo([
|
|
'view-dashboard',
|
|
'manage-condomini',
|
|
'view-reports',
|
|
'manage-tickets',
|
|
'manage-accounting',
|
|
|
|
// Contabilità (granulare)
|
|
'contabilita.gestioni',
|
|
'contabilita.prima-nota',
|
|
'contabilita.regole-prima-nota',
|
|
'contabilita.casse-banche',
|
|
'contabilita.fatture-elettroniche',
|
|
'contabilita.fatture-fornitori',
|
|
'contabilita.voci-spesa',
|
|
'contabilita.preventivi',
|
|
'contabilita.registro-ra',
|
|
'contabilita.bonifici.autorizza',
|
|
]);
|
|
|
|
$impiegato = Role::findByName('impiegato');
|
|
$impiegato->givePermissionTo([
|
|
'view-dashboard',
|
|
'view-reports',
|
|
]);
|
|
|
|
$fornitore = Role::findByName('fornitore');
|
|
$fornitore->givePermissionTo([
|
|
'view-dashboard',
|
|
]);
|
|
|
|
$condomino = Role::findByName('condomino');
|
|
$condomino->givePermissionTo([
|
|
'view-dashboard',
|
|
'view-reports'
|
|
]);
|
|
}
|
|
}
|