|
|
@@ -0,0 +1,44 @@
|
|
|
+-- 1.0.384: UATAdminA 补绑 UAT_FUNCTION_USER 角色,修复登录后「抱歉,您没有登录权限」。
|
|
|
+--
|
|
|
+-- 背景:
|
|
|
+-- UATAdminA 为 AccountType=777 普通账号,SysMenuService.GetLoginMenuList 中
|
|
|
+-- !(SuperAdmin || SysAdmin) 分支成立,菜单只能来自 SysRoleMenu 的角色授权。
|
|
|
+-- 该账号原绑的 SMART_OPS_DEPT_HEAD / SMART_OPS_MODULE_OWNER / SMART_OPS_OPS_OWNER
|
|
|
+-- 三个角色在 SysRoleMenu 中均为 0 条菜单授权(纯业务身份标签角色),
|
|
|
+-- 导致菜单接口返回空数组,前端 router/backEnd.ts 判定 isNoPower=true,
|
|
|
+-- 弹出「抱歉,您没有登录权限」并 clearTokens() 退回登录页。
|
|
|
+--
|
|
|
+-- 同租户(UATTEST_CHL / 838257186181189)其余 5 个账号
|
|
|
+-- UATPlanA / UATPurchaseA / UATWarehouseA / UATQualityA / UATExceptionA
|
|
|
+-- 均绑定了 UAT_FUNCTION_USER(308 个菜单,DataScope=1 全部数据)而工作正常。
|
|
|
+-- 本脚本使 UATAdminA 与同租户既有范式对齐,不改 AccountType、不改权限模型。
|
|
|
+--
|
|
|
+-- 幂等:已绑定则不重复插入;账号或角色不存在的库上为空操作。
|
|
|
+
|
|
|
+DROP TEMPORARY TABLE IF EXISTS tmp_uat_admin_a_ur;
|
|
|
+CREATE TEMPORARY TABLE tmp_uat_admin_a_ur (
|
|
|
+ seq INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ user_id BIGINT NOT NULL,
|
|
|
+ role_id BIGINT NOT NULL
|
|
|
+);
|
|
|
+
|
|
|
+INSERT INTO tmp_uat_admin_a_ur (user_id, role_id)
|
|
|
+SELECT u.Id, r.Id
|
|
|
+FROM SysUser u
|
|
|
+JOIN SysRole r
|
|
|
+ ON r.TenantId = u.TenantId
|
|
|
+ AND r.Code = 'UAT_FUNCTION_USER'
|
|
|
+ AND r.Status = 1
|
|
|
+WHERE u.Account = 'UATAdminA'
|
|
|
+ AND u.Status = 1
|
|
|
+ AND NOT EXISTS (
|
|
|
+ SELECT 1 FROM SysUserRole x WHERE x.UserId = u.Id AND x.RoleId = r.Id
|
|
|
+ );
|
|
|
+
|
|
|
+SET @uat_admin_a_ur_base := (SELECT IFNULL(MAX(Id), 0) FROM SysUserRole);
|
|
|
+
|
|
|
+INSERT INTO SysUserRole (Id, UserId, RoleId)
|
|
|
+SELECT @uat_admin_a_ur_base + s.seq, s.user_id, s.role_id
|
|
|
+FROM tmp_uat_admin_a_ur s;
|
|
|
+
|
|
|
+DROP TEMPORARY TABLE IF EXISTS tmp_uat_admin_a_ur;
|