\344\272\247\345\223\201\347\272\277\344\270\216\350\217\234\345\215\225\344\270\242\345\244\261\351\227\256\351\242\230.md
... ...
@@ -23,10 +23,18 @@
23 23
3.检查对应app的权限点是否生成;
24 24
4.然后重新授权或先取消授权再点击重新授权;
25 25
26
-### 五 特殊情况下产品丢失场景
26
+## 五 rbac_user_prefer表, CURROLELIST被错误的设置为null,导致角色丢失, 也会导致菜单丢失.
27
+**问题描述**
28
+租户管理员角色账户密码过期了,用户尝试去解锁账户,解锁完账户后,重新登录之后,发现页面一个菜单都不显示.
27 29
28
-#### 5.1 rbac_user_prefer 表, CURROLELIST设置为null 也会导致菜单丢失
29
-1. 由于rbac_user_prefer表 sign_content 设置为null,这个错误导致下次登记就不会更新sg和 role,后续登录还是报错。但新建一个用户由于设置成正确的,所以新用户可以登录。
30
+**根本原因**
31
+Debug 发现,loadMenu接口调用时,meta.getRoleList()为NULL,定位到用户的角色没有正确设置.因为角色是从session获取的, 然后查看rbac_user_prefer表,发现当前角色的CURROLELIST为空,导致用户的角色丢失.所以查询不到菜单.
32
+
33
+rbac_user_prefer 表, CURROLELIST被错误的设置为null 也会导致菜单丢失.
34
+
35
+**解决方式**
36
+1. 由于rbac_user_prefer表 sign_content 设置为null,这个错误导致下次登记就不会更新sg和 role,后续登录还是报错。但新建一个用户由于设置成正确的,所以新用户可以登录和显示菜单。
37
+2. 先查询到该用户的角色列表,修改rbac_user_prefer表中的CURROLELIST设置为["roleId1","roleId2"],重新登录,菜单正确显示.
30 38
31 39
32 40