diff --git a/docs/sql/20261112_lab_sample_processing_normalize_acl.sql b/docs/sql/20261112_lab_sample_processing_normalize_acl.sql new file mode 100644 index 00000000..98957ea9 --- /dev/null +++ b/docs/sql/20261112_lab_sample_processing_normalize_acl.sql @@ -0,0 +1,21 @@ +-- 实验室样本处理 ACL 归一化(可重复执行) +-- 1) 撤销所有 lab:sample-processing* / menu:lab-sample-processing 角色菜单 +-- 2) 仅按下列角色重授: +-- 市场编辑:市场专员/临床销售/销售助理/客服/采集专员 +-- 生产编辑:生产专员/实验专员/细胞实验员/研发专员 +-- 质检编辑:质检专员/质量安全员 +-- 主管:生产主管/质量主管/采集主管/采集经理/研发主管/研发总监/总经理/副总经理/董事长/超级管理员 +-- 只读:采集接受人 +-- 说明:正式执行请用 Agent 脚本 tmp_normalize_lab_acl.py(含幂等 undelete/insert)。 +-- 本文件作为规则记录;勿在未核对角色名时直接全量套用到其他环境。 + +UPDATE sys_role_menu rm +JOIN sys_menu m ON m.id = rm.menu_id +SET rm.del_flag = 1, + rm.update_by = 'normalize-acl', + rm.update_time = NOW() +WHERE rm.del_flag = 0 + AND ( + m.perms LIKE 'lab:sample-processing%' + OR m.perms = 'menu:lab-sample-processing' + );