页面与按钮权限
# 页面与按钮权限
按钮是否显示,看当前内存里的权限码,不看本地写死的角色名。页面通过 canAccess 判断,权限码与服务端相同。例如部门页:
| 操作 | 权限码 |
|---|---|
| 新增部门、新增下级 | system:dept:create |
| 编辑 | system:dept:update |
| 删除 | system:dept:delete |
canAccess 定义在 fago/fago-vben5/apps/web-antd/src/router/access.ts,只检查 GET /auth/codes 返回的列表。没有权限码时不渲染按钮。用户仍可能直接调用 API,服务端会再检查一次并返回 403001。
列表和详情还要受 数据权限 约束。按钮可见只说明有这个操作的功能权限,不说明每一行都在数据范围内。范围外的记录按 404001 处理。
角色授权页提交的是目录键 menuIds 和权限码,不是组件文件路径。保留角色的授权不能在普通编辑里修改。保存授权、重置他人密码和解锁账号时,页面要求填写操作者当前口令;取消、失败或离开页面时清空这组输入。
直接打开未授权 URL 时,路由不注册该页。退出失败时本地身份仍会清掉,并提示服务端撤销尚未确认。
按钮与权限码绑定示例(无码则不渲染):
<AccessControl :codes="['system:dept:create']" type="code">
<a-button type="primary">新增部门</a-button>
</AccessControl>
最后更新: 2026/10/28 10:34:52