feat(migration): limpia permisos de usuarios workshop/mechanic en todos los tenants
- Agrega migracion v4.11_clean_workshop_mechanic_permissions.sql - Aplica DELETE de permisos no relacionados con taller y reinserta los 3 permisos base - Ejecutada en todas las bases de datos de tenant activas
This commit is contained in:
24
pos/migrations/v4.11_clean_workshop_mechanic_permissions.sql
Normal file
24
pos/migrations/v4.11_clean_workshop_mechanic_permissions.sql
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
-- v4.11_clean_workshop_mechanic_permissions.sql
|
||||||
|
-- Restringe los permisos de los empleados con rol 'workshop' y 'mechanic'
|
||||||
|
-- para que solo tengan acceso a la seccion de Taller y no vean precios.
|
||||||
|
-- Ejecutar en cada base de datos de tenant.
|
||||||
|
|
||||||
|
-- 1. Eliminar cualquier permiso que no sea de taller para estos roles
|
||||||
|
DELETE FROM employee_permissions
|
||||||
|
WHERE employee_id IN (
|
||||||
|
SELECT id FROM employees WHERE role IN ('workshop', 'mechanic')
|
||||||
|
)
|
||||||
|
AND permission NOT IN ('workshop.view', 'workshop.edit', 'workshop.add_items');
|
||||||
|
|
||||||
|
-- 2. Asegurar que tengan los permisos base de taller
|
||||||
|
INSERT INTO employee_permissions (employee_id, permission)
|
||||||
|
SELECT e.id, p.permission
|
||||||
|
FROM employees e
|
||||||
|
CROSS JOIN (
|
||||||
|
VALUES
|
||||||
|
('workshop.view'),
|
||||||
|
('workshop.edit'),
|
||||||
|
('workshop.add_items')
|
||||||
|
) AS p(permission)
|
||||||
|
WHERE e.role IN ('workshop', 'mechanic')
|
||||||
|
ON CONFLICT (employee_id, permission) DO NOTHING;
|
||||||
Reference in New Issue
Block a user