| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- -- 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;
|