feat(api): migrar controllers admin a RequirePermission [UDT-006]
This commit is contained in:
42
database/migrations/V007__add_admin_permissions_udt006.sql
Normal file
42
database/migrations/V007__add_admin_permissions_udt006.sql
Normal file
@@ -0,0 +1,42 @@
|
||||
-- V007__add_admin_permissions_udt006.sql
|
||||
-- Agrega 3 permisos administrativos requeridos por UDT-006 (middleware de autorización RBAC).
|
||||
-- Los 3 nuevos permisos se asignan al rol 'admin' inmediatamente.
|
||||
-- Convención RBAC: cada permiso nuevo → asignar explícitamente a admin en la misma migración.
|
||||
-- Run on: SIGCM2 (prod) and SIGCM2_Test (integration tests)
|
||||
|
||||
SET QUOTED_IDENTIFIER ON;
|
||||
SET ANSI_NULLS ON;
|
||||
SET NOCOUNT ON;
|
||||
GO
|
||||
|
||||
-- Agregar los 3 permisos nuevos al catálogo (idempotente via MERGE)
|
||||
MERGE dbo.Permiso AS t
|
||||
USING (VALUES
|
||||
('administracion:roles:gestionar', N'Gestionar roles del sistema', N'Crear, editar y desactivar roles RBAC', 'administracion'),
|
||||
('administracion:roles_permisos:gestionar', N'Gestionar asignación de permisos', N'Asignar y revocar permisos por rol', 'administracion'),
|
||||
('administracion:permisos:ver', N'Ver catálogo de permisos', N'Consultar el listado de permisos del sistema', 'administracion')
|
||||
) AS s (Codigo, Nombre, Descripcion, Modulo)
|
||||
ON t.Codigo = s.Codigo
|
||||
WHEN NOT MATCHED BY TARGET THEN
|
||||
INSERT (Codigo, Nombre, Descripcion, Modulo)
|
||||
VALUES (s.Codigo, s.Nombre, s.Descripcion, s.Modulo);
|
||||
GO
|
||||
|
||||
-- Asignar los 3 nuevos permisos al rol 'admin' (idempotente via MERGE)
|
||||
MERGE dbo.RolPermiso AS t
|
||||
USING (
|
||||
SELECT r.Id AS RolId, p.Id AS PermisoId
|
||||
FROM (VALUES
|
||||
('admin', 'administracion:roles:gestionar'),
|
||||
('admin', 'administracion:roles_permisos:gestionar'),
|
||||
('admin', 'administracion:permisos:ver')
|
||||
) AS x (RolCodigo, PermisoCodigo)
|
||||
JOIN dbo.Rol r ON r.Codigo = x.RolCodigo
|
||||
JOIN dbo.Permiso p ON p.Codigo = x.PermisoCodigo
|
||||
) AS s ON t.RolId = s.RolId AND t.PermisoId = s.PermisoId
|
||||
WHEN NOT MATCHED BY TARGET THEN
|
||||
INSERT (RolId, PermisoId) VALUES (s.RolId, s.PermisoId);
|
||||
GO
|
||||
|
||||
PRINT 'V007: 3 permisos administracion:roles|roles-permisos|permisos agregados al catalogo y asignados a admin.';
|
||||
GO
|
||||
Reference in New Issue
Block a user