feat(bd): V020 permiso + V022 seed ChargeableCharConfig (PRC-001)
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
-- V020__add_chargeable_chars_permission.sql
|
||||
-- PRC-001: permiso RBAC para ABM de caracteres tasables.
|
||||
--
|
||||
-- Cambios:
|
||||
-- 1. Agrega permiso 'tasacion:caracteres_especiales:gestionar' al catálogo.
|
||||
-- 2. Asigna el permiso al rol 'admin'.
|
||||
--
|
||||
-- Convención RBAC: modulo:recurso:accion.
|
||||
-- Patrón: V007 (MERGE idempotente).
|
||||
-- Idempotente: seguro para re-ejecutar.
|
||||
-- Reversa: V020_ROLLBACK.sql.
|
||||
-- Run on: SIGCM2 (dev), SIGCM2_Test_App, SIGCM2_Test_Api.
|
||||
--
|
||||
-- NOTA: V020 se ejecuta ANTES de V021 (tabla) porque el permiso debe existir
|
||||
-- antes de que la API arranque con [RequirePermission(...)].
|
||||
-- V021 crea la tabla dbo.ChargeableCharConfig.
|
||||
-- V022 siembra las 4 filas globales por defecto.
|
||||
--
|
||||
-- SDD Design: engram sdd/prc-001-word-counter-spike/design (D16/D17)
|
||||
|
||||
SET QUOTED_IDENTIFIER ON;
|
||||
SET ANSI_NULLS ON;
|
||||
SET NOCOUNT ON;
|
||||
GO
|
||||
|
||||
-- Agregar permiso al catálogo (idempotente via MERGE).
|
||||
MERGE dbo.Permiso AS t
|
||||
USING (VALUES
|
||||
('tasacion:caracteres_especiales:gestionar',
|
||||
N'Gestionar caracteres tasables',
|
||||
N'Crear, editar precio y desactivar la configuración de caracteres especiales para tasación.',
|
||||
'tasacion')
|
||||
) 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 a rol 'admin' (idempotente via MERGE).
|
||||
MERGE dbo.RolPermiso AS t
|
||||
USING (
|
||||
SELECT r.Id AS RolId, p.Id AS PermisoId
|
||||
FROM dbo.Rol r
|
||||
CROSS JOIN dbo.Permiso p
|
||||
WHERE r.Codigo = 'admin'
|
||||
AND p.Codigo = 'tasacion:caracteres_especiales:gestionar'
|
||||
) 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 'V020 applied — tasacion:caracteres_especiales:gestionar added to catalog and assigned to admin.';
|
||||
GO
|
||||
Reference in New Issue
Block a user