This commit is contained in:
hero920103 committed 2026-10-19 01:13:17 +08:00
1 parent 5718a00e31
commit 1850ac640e
226 files changed
+37772 -12071

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
-- =============================================================
-- 角色「平台下发 + 租户只读」显式锁定 - 增量迁移
--
-- 场景:平台端可建 cid=2 且 tenant_id=0 的全局角色下发到租户后台。
-- 此前"租户不可改/不可删"的判定绑死在 tenant_id==0 上,
-- 一是无法表达"落到具体租户头上但仍只读",
-- 二是后端看 tenant_id、前端看 is_custom,两处口径不一致会漂移。
-- 本迁移把锁定语义收敛为独立列 is_locked。
--
-- 执行顺序:
-- 1) 加 is_locked / source_role_id 两列
-- 2) 回填:现存全局租户角色(cid=2 且 tenant_id=0)标记为锁定,
-- 保证代码改用 is_locked 判定后,这两个角色不会突然变得可被租户改写。
--
-- 注意:MySQL 不支持 ADD COLUMN IF NOT EXISTS,本脚本重复执行会在第 1 步
-- 报 Duplicate column name 并停止,属预期,不会破坏已回填的数据。
-- =============================================================
-- 1. 角色表补锁定列
ALTER TABLE `yz_system_admin_role`
ADD COLUMN `is_locked` TINYINT UNSIGNED NOT NULL DEFAULT 0
COMMENT '1=平台下发,租户端只读(不可改名/改权限/删除)' AFTER `is_custom`,
ADD COLUMN `source_role_id` BIGINT UNSIGNED NOT NULL DEFAULT 0
COMMENT '来源角色ID(平台下发时记录,0=非下发)' AFTER `is_locked`;
-- 2. 回填存量全局租户角色
UPDATE `yz_system_admin_role`
SET `is_locked` = 1
WHERE `cid` = 2
AND `tenant_id` = 0
AND `delete_time` IS NULL
AND `is_locked` = 0;