28 lines
1.5 KiB
SQL
28 lines
1.5 KiB
SQL
-- =============================================================================
|
|
-- Migración 001 — RBAC expandido
|
|
-- Agrega columnas de permisos granulares a role_modules.
|
|
-- Proyecto: WhatsApp ERP Multi-módulo
|
|
-- Fecha: 2026-04-16
|
|
-- IMPORTANTE: Migración ADITIVA. No elimina ni renombra columnas existentes.
|
|
-- =============================================================================
|
|
|
|
-- Ampliar table role_modules con permisos por acción
|
|
ALTER TABLE role_modules
|
|
ADD COLUMN IF NOT EXISTS can_view TINYINT(1) NOT NULL DEFAULT 1 COMMENT 'Puede ver el módulo',
|
|
ADD COLUMN IF NOT EXISTS can_create TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Puede crear registros',
|
|
ADD COLUMN IF NOT EXISTS can_edit TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Puede editar registros',
|
|
ADD COLUMN IF NOT EXISTS can_delete TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Puede eliminar registros',
|
|
ADD COLUMN IF NOT EXISTS can_export TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Puede exportar datos',
|
|
ADD COLUMN IF NOT EXISTS extra_json JSON NULL COMMENT 'Permisos extras específicos del módulo (JSON)';
|
|
|
|
-- Retrocompatibilidad: los registros existentes con permission='write' reciben can_create/edit/delete = 1
|
|
UPDATE role_modules
|
|
SET can_create = 1, can_edit = 1, can_delete = 1, can_export = 1
|
|
WHERE permission = 'write' OR permission IS NULL;
|
|
|
|
-- Los que tienen permission='read' solo tienen can_view = 1 (ya es el DEFAULT, no tocar)
|
|
|
|
-- Registrar migración
|
|
INSERT IGNORE INTO migrations (migration, executed_at)
|
|
VALUES ('001_rbac_expandido', NOW());
|