Files
construprogress/database/seeders/RolesAndPermissionsSeeder.php
T
Javier Braña a65d4b12f2 feat(inspections): add photos support with edit + lightbox
- Validación robusta fotos (10MB, jpeg/png/webp, max 10)
- Editar inspección existente: botón en historial, modal y tabla
- Eliminación individual de fotos en edición (marcar + guardar)
- Lightbox/carousel en modal ver + editar (Alpine.js)
- Columna 'Fotos' en InspectionTable con thumbnails + contador
- Permiso 'edit inspections' en seeders + checks en componente
- Test actualizado: seed roles/permisos + attach template pivot
- Fix: removed unsupported filterable() on secondaryHeaderFilter
2026-07-29 01:44:38 +02:00

54 lines
1.9 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use App\Models\User;
class RolesAndPermissionsSeeder extends Seeder
{
public function run()
{
// Reset cached roles and permissions
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
// Create permissions
$permissions = [
'view projects', 'create projects', 'edit projects', 'delete projects',
'assign users', 'upload layers', 'update progress', 'view reports', 'manage all',
'view inspections', 'create inspections', 'edit inspections', 'delete inspections', 'manage templates',
];
foreach ($permissions as $perm) {
Permission::firstOrCreate(['name' => $perm]);
}
// Create roles and assign permissions
$admin = Role::firstOrCreate(['name' => 'Admin']);
$admin->givePermissionTo(Permission::all());
$supervisor = Role::firstOrCreate(['name' => 'Supervisor']);
$supervisor->givePermissionTo([
'view projects', 'upload layers', 'update progress',
'view inspections', 'create inspections', 'edit inspections',
]);
$consultor = Role::firstOrCreate(['name' => 'Consultor']);
$consultor->givePermissionTo(['view projects', 'view reports']);
$cliente = Role::firstOrCreate(['name' => 'Cliente']);
$cliente->givePermissionTo(['view projects']);
// Create default admin user (sin factory: los seeders de sistema no deben
// depender de fakerphp/faker, que vive en require-dev).
$user = User::firstOrCreate(
['email' => 'admin@email.com'],
[
'name' => 'Admin User',
'password' => bcrypt('password'),
],
);
$user->assignRole('Admin');
}
}