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
|
public function run(): void
|
||||||
{
|
{
|
||||||
|
|
||||||
// Limpiar tablas de permisos para poder re-ejecutar
|
$users = PermissionType::firstOrCreate([
|
||||||
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([
|
|
||||||
'name' => 'Usuarios'
|
'name' => 'Usuarios'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -56,7 +44,7 @@ public function run(): void
|
|||||||
$userSettings = $this->onPermission('users.settings', 'Configuración de usuarios', $users, 'api');
|
$userSettings = $this->onPermission('users.settings', 'Configuración de usuarios', $users, 'api');
|
||||||
$userOnline = $this->onPermission('users.online', 'Usuarios en linea', $users, 'api');
|
$userOnline = $this->onPermission('users.online', 'Usuarios en linea', $users, 'api');
|
||||||
|
|
||||||
$roles = PermissionType::create([
|
$roles = PermissionType::firstOrCreate([
|
||||||
'name' => 'Roles'
|
'name' => 'Roles'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -67,13 +55,13 @@ public function run(): void
|
|||||||
$roleDestroy
|
$roleDestroy
|
||||||
] = $this->onCRUD('roles', $roles, 'api');
|
] = $this->onCRUD('roles', $roles, 'api');
|
||||||
|
|
||||||
$pulse = PermissionType::create([
|
$pulse = PermissionType::firstOrCreate([
|
||||||
'name' => 'Sistema'
|
'name' => 'Sistema'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$systemPulse = $this->onPermission('pulse', 'Monitoreo de Pulse', $pulse, 'api');
|
$systemPulse = $this->onPermission('pulse', 'Monitoreo de Pulse', $pulse, 'api');
|
||||||
|
|
||||||
$pulse = PermissionType::create([
|
$pulse = PermissionType::firstOrCreate([
|
||||||
'name' => 'Historial de actividades'
|
'name' => 'Historial de actividades'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -86,7 +74,7 @@ public function run(): void
|
|||||||
// ==================== NUEVOS PERMISOS PARA PDV ====================
|
// ==================== NUEVOS PERMISOS PARA PDV ====================
|
||||||
|
|
||||||
// Permisos de Caja
|
// Permisos de Caja
|
||||||
$cashRegisterType = PermissionType::create([
|
$cashRegisterType = PermissionType::firstOrCreate([
|
||||||
'name' => 'Caja registradora'
|
'name' => 'Caja registradora'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -96,7 +84,7 @@ public function run(): void
|
|||||||
$cashRegisterCurrent = $this->onPermission('cash-registers.current', 'Ver caja actual', $cashRegisterType, 'api');
|
$cashRegisterCurrent = $this->onPermission('cash-registers.current', 'Ver caja actual', $cashRegisterType, 'api');
|
||||||
|
|
||||||
// Permisos de Ventas
|
// Permisos de Ventas
|
||||||
$salesType = PermissionType::create([
|
$salesType = PermissionType::firstOrCreate([
|
||||||
'name' => 'Ventas'
|
'name' => 'Ventas'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -105,7 +93,7 @@ public function run(): void
|
|||||||
$salesCancel = $this->onPermission('sales.cancel', 'Cancelar venta', $salesType, 'api');
|
$salesCancel = $this->onPermission('sales.cancel', 'Cancelar venta', $salesType, 'api');
|
||||||
|
|
||||||
// Permisos de Inventario (solo lectura)
|
// Permisos de Inventario (solo lectura)
|
||||||
$inventoryType = PermissionType::create([
|
$inventoryType = PermissionType::firstOrCreate([
|
||||||
'name' => 'Inventario'
|
'name' => 'Inventario'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -118,7 +106,7 @@ public function run(): void
|
|||||||
|
|
||||||
|
|
||||||
// Permisos de Clientes
|
// Permisos de Clientes
|
||||||
$clientsType = PermissionType::create([
|
$clientsType = PermissionType::firstOrCreate([
|
||||||
'name' => 'Clientes'
|
'name' => 'Clientes'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -130,7 +118,7 @@ public function run(): void
|
|||||||
] = $this->onCRUD('clients', $clientsType, 'api');
|
] = $this->onCRUD('clients', $clientsType, 'api');
|
||||||
|
|
||||||
// Permisos de Niveles de Clientes (Tiers)
|
// Permisos de Niveles de Clientes (Tiers)
|
||||||
$clientTiersType = PermissionType::create([
|
$clientTiersType = PermissionType::firstOrCreate([
|
||||||
'name' => 'Niveles de clientes'
|
'name' => 'Niveles de clientes'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -145,18 +133,18 @@ public function run(): void
|
|||||||
// ==================== ROLES ====================
|
// ==================== ROLES ====================
|
||||||
|
|
||||||
// Desarrollador
|
// Desarrollador
|
||||||
Role::create([
|
Role::firstOrCreate([
|
||||||
'name' => 'developer',
|
'name' => 'developer',
|
||||||
'description' => 'Desarrollador',
|
'description' => 'Desarrollador',
|
||||||
'guard_name' => 'api'
|
'guard_name' => 'api'
|
||||||
])->givePermissionTo(Permission::all());
|
])->syncPermissions(Permission::all());
|
||||||
|
|
||||||
// Administrador
|
// Administrador
|
||||||
Role::create([
|
Role::firstOrCreate([
|
||||||
'name' => 'admin',
|
'name' => 'admin',
|
||||||
'description' => 'Administrador',
|
'description' => 'Administrador',
|
||||||
'guard_name' => 'api'
|
'guard_name' => 'api'
|
||||||
])->givePermissionTo(
|
])->syncPermissions(
|
||||||
$userIndex,
|
$userIndex,
|
||||||
$userCreate,
|
$userCreate,
|
||||||
$userEdit,
|
$userEdit,
|
||||||
@ -193,11 +181,11 @@ public function run(): void
|
|||||||
);
|
);
|
||||||
|
|
||||||
//Operador PDV (solo permisos de operación de caja y ventas)
|
//Operador PDV (solo permisos de operación de caja y ventas)
|
||||||
Role::create([
|
Role::firstOrCreate([
|
||||||
'name' => 'operador_pdv',
|
'name' => 'operador_pdv',
|
||||||
'description' => 'Operador de Punto de Venta',
|
'description' => 'Operador de Punto de Venta',
|
||||||
'guard_name' => 'api'
|
'guard_name' => 'api'
|
||||||
])->givePermissionTo(
|
])->syncPermissions(
|
||||||
// Caja
|
// Caja
|
||||||
$cashRegisterIndex, // Ver historial de cajas
|
$cashRegisterIndex, // Ver historial de cajas
|
||||||
$cashRegisterOpen, // Abrir caja
|
$cashRegisterOpen, // Abrir caja
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user