docs(wxcp): 修正默认角色菜单条数笔误,并说清「首页」为何不在菜单树里
- 「共 15 条」改为 14 条,并写明构成:根目录 1075490 + 3 个菜单 + 10 个按钮,
三级授权(m.id / p1.id / p2.id = 1075490)已全覆盖,不是授权范围不够。
- 「首页」那句补上原因:它是前端静态路由(modules/dashboard.ts 的 /analytics),
backend 模式下由 generateRoutesByBackend 末尾 `return [...options.routes, ...routes]`
始终合并,任何登录用户可见、无需授权。所以在「角色管理」的菜单树里找不到
「首页」是正常的,不是漏配 —— 原注释只写了结论没写依据,容易让人去菜单表里找。
Co-Authored-By: Claude <noreply@anthropic.com>
| | |
| | | -- 属于「能登录却什么都看不到」的静默故障。 |
| | | -- |
| | | -- 授予范围:仅「会员管理」整棵子树(根菜单编号 1075490,定义见 ums_module.sql)。 |
| | | -- 首页是前端静态路由、不依赖菜单表,任何账号都看得到,无需授权。 |
| | | -- 共 14 条 = 根目录 1 + 菜单 3 + 按钮 10,三级全给。 |
| | | -- 首页不在这里,也不需要在这里:它是前端静态路由(src/router/routes/modules/ |
| | | -- dashboard.ts 里的 /analytics),backend 模式下由 generateRoutesByBackend 末尾的 |
| | | -- return [...options.routes, ...routes] 始终合并进来,任何登录用户都可见。 |
| | | -- 所以「角色管理」的菜单树里找不到「首页」是正常的,不是漏配。 |
| | | -- |
| | | -- 幂等:角色先查后插;角色菜单关联先删后插,可重复执行。 |
| | | -- ============================================================ |
| | |
| | | -- 为什么用编码不用角色编号:角色编号在本地/测试/生产各库不一致,写死换库就失效。 |
| | | -- |
| | | -- 授予范围:仅「会员管理」整棵子树(根菜单编号 1075490,定义见 ums_module.sql)。 |
| | | -- 首页是前端静态路由、不依赖菜单表,任何账号都看得到,无需授权。 |
| | | -- 共 14 条 = 根目录 1 + 菜单 3 + 按钮 10,三级全给。 |
| | | -- 首页不在这里,也不需要在这里:它是前端静态路由(src/router/routes/modules/ |
| | | -- dashboard.ts 里的 /analytics),backend 模式下由 generateRoutesByBackend 末尾的 |
| | | -- return [...options.routes, ...routes] 始终合并进来,任何登录用户都可见。 |
| | | -- 所以「角色管理」的菜单树里找不到「首页」是正常的,不是漏配。 |
| | | -- |
| | | -- 幂等:角色先查后插;角色菜单关联先删后插,可重复执行。 |
| | | -- ============================================================ |
| | |
| | | | 场景 | 规则 | |
| | | |------|------| |
| | | | 企业微信首次扫码(未绑定) | 自动创建系统用户,用户名为 `wx_` + 8 位随机十六进制,昵称取企业微信昵称,账号状态为启用,随机生成密码(用户无需知晓,仅用于占位) | |
| | | | 首次注册后的默认权限 | 绑定角色 `wxcp_user`,**仅授予「会员管理」整棵子树**(根菜单 1075490 + 子菜单 + 孙菜单,共 15 条)。首页是前端静态路由、不依赖菜单表,任何账号都可见,无需授权。角色缺失时代码只记 warn 日志、不阻断登录,表现为「能进系统但菜单全空」 | |
| | | | 首次注册后的默认权限 | 绑定角色 `wxcp_user`,**仅授予「会员管理」整棵子树**(根目录 1075490 + 3 个菜单 + 10 个按钮,共 **14 条**;SQL 见 `docs/sql/wxcp_menu.sql` 末尾)。首页不受菜单表控制:它是前端静态路由(`src/router/routes/modules/dashboard.ts` 里的 `/analytics`),backend 模式下由 `generateRoutesByBackend` 末尾的 `return [...options.routes, ...routes]` 始终合并进来,任何登录用户都可见、也无需授权——所以「角色管理」的菜单树里**根本找不到「首页」**,这是正常的,不是漏配。角色缺失时代码只记 warn 日志、不阻断登录,表现为「能进系统但菜单全空」 | |
| | | | 企业微信再次扫码(已绑定) | 直接登录,不创建新用户 | |
| | | | 非企业微信的社交平台首次登录 | 仍返回 `1_002_000_005`「未绑定账号,需要进行绑定」,需引导用户走账号密码登录并绑定 | |
| | | | 账号密码登录时携带社交参数 | 走原有绑定逻辑,登录成功后该社交账号与账号绑定 | |