refactor: cambiar creación de permisos a firstOrCreate y ajustar sincronización de permisos en roles
This commit is contained in:
parent
c5d8e3c65b
commit
95154f4b28
@ -30,19 +30,7 @@ class RoleSeeder extends Seeder
|
||||
public function run(): void
|
||||
{
|
||||
|
||||
// Limpiar tablas de permisos para poder re-ejecutar
|
||||
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
|
||||
|
||||
DB::statement('SET FOREIGN_KEY_CHECKS=0;');
|
||||
DB::table('role_has_permissions')->truncate();
|
||||
DB::table('model_has_permissions')->truncate();
|
||||
DB::table('model_has_roles')->truncate();
|
||||
DB::table('permissions')->truncate();
|
||||
DB::table('roles')->truncate();
|
||||
DB::table('permission_types')->truncate();
|
||||
DB::statement('SET FOREIGN_KEY_CHECKS=1;');
|
||||
|
||||
$users = PermissionType::create([
|
||||
$users = PermissionType::firstOrCreate([
|
||||
'name' => 'Usuarios'
|
||||
]);
|
||||
|
||||
@ -56,7 +44,7 @@ public function run(): void
|
||||
$userSettings = $this->onPermission('users.settings', 'Configuración de usuarios', $users, 'api');
|
||||
$userOnline = $this->onPermission('users.online', 'Usuarios en linea', $users, 'api');
|
||||
|
||||
$roles = PermissionType::create([
|
||||
$roles = PermissionType::firstOrCreate([
|
||||
'name' => 'Roles'
|
||||
]);
|
||||
|
||||
@ -67,13 +55,13 @@ public function run(): void
|
||||
$roleDestroy
|
||||
] = $this->onCRUD('roles', $roles, 'api');
|
||||
|
||||
$pulse = PermissionType::create([
|
||||
$pulse = PermissionType::firstOrCreate([
|
||||
'name' => 'Sistema'
|
||||
]);
|
||||
|
||||
$systemPulse = $this->onPermission('pulse', 'Monitoreo de Pulse', $pulse, 'api');
|
||||
|
||||
$pulse = PermissionType::create([
|
||||
$pulse = PermissionType::firstOrCreate([
|
||||
'name' => 'Historial de actividades'
|
||||
]);
|
||||
|
||||
@ -86,7 +74,7 @@ public function run(): void
|
||||
// ==================== NUEVOS PERMISOS PARA PDV ====================
|
||||
|
||||
// Permisos de Caja
|
||||
$cashRegisterType = PermissionType::create([
|
||||
$cashRegisterType = PermissionType::firstOrCreate([
|
||||
'name' => 'Caja registradora'
|
||||
]);
|
||||
|
||||
@ -96,7 +84,7 @@ public function run(): void
|
||||
$cashRegisterCurrent = $this->onPermission('cash-registers.current', 'Ver caja actual', $cashRegisterType, 'api');
|
||||
|
||||
// Permisos de Ventas
|
||||
$salesType = PermissionType::create([
|
||||
$salesType = PermissionType::firstOrCreate([
|
||||
'name' => 'Ventas'
|
||||
]);
|
||||
|
||||
@ -105,7 +93,7 @@ public function run(): void
|
||||
$salesCancel = $this->onPermission('sales.cancel', 'Cancelar venta', $salesType, 'api');
|
||||
|
||||
// Permisos de Inventario (solo lectura)
|
||||
$inventoryType = PermissionType::create([
|
||||
$inventoryType = PermissionType::firstOrCreate([
|
||||
'name' => 'Inventario'
|
||||
]);
|
||||
|
||||
@ -118,7 +106,7 @@ public function run(): void
|
||||
|
||||
|
||||
// Permisos de Clientes
|
||||
$clientsType = PermissionType::create([
|
||||
$clientsType = PermissionType::firstOrCreate([
|
||||
'name' => 'Clientes'
|
||||
]);
|
||||
|
||||
@ -130,7 +118,7 @@ public function run(): void
|
||||
] = $this->onCRUD('clients', $clientsType, 'api');
|
||||
|
||||
// Permisos de Niveles de Clientes (Tiers)
|
||||
$clientTiersType = PermissionType::create([
|
||||
$clientTiersType = PermissionType::firstOrCreate([
|
||||
'name' => 'Niveles de clientes'
|
||||
]);
|
||||
|
||||
@ -145,18 +133,18 @@ public function run(): void
|
||||
// ==================== ROLES ====================
|
||||
|
||||
// Desarrollador
|
||||
Role::create([
|
||||
Role::firstOrCreate([
|
||||
'name' => 'developer',
|
||||
'description' => 'Desarrollador',
|
||||
'guard_name' => 'api'
|
||||
])->givePermissionTo(Permission::all());
|
||||
])->syncPermissions(Permission::all());
|
||||
|
||||
// Administrador
|
||||
Role::create([
|
||||
Role::firstOrCreate([
|
||||
'name' => 'admin',
|
||||
'description' => 'Administrador',
|
||||
'guard_name' => 'api'
|
||||
])->givePermissionTo(
|
||||
])->syncPermissions(
|
||||
$userIndex,
|
||||
$userCreate,
|
||||
$userEdit,
|
||||
@ -193,11 +181,11 @@ public function run(): void
|
||||
);
|
||||
|
||||
//Operador PDV (solo permisos de operación de caja y ventas)
|
||||
Role::create([
|
||||
Role::firstOrCreate([
|
||||
'name' => 'operador_pdv',
|
||||
'description' => 'Operador de Punto de Venta',
|
||||
'guard_name' => 'api'
|
||||
])->givePermissionTo(
|
||||
])->syncPermissions(
|
||||
// Caja
|
||||
$cashRegisterIndex, // Ver historial de cajas
|
||||
$cashRegisterOpen, // Abrir caja
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user