三套权限各自判断什么
本文导航

三套权限各自判断什么
| 套 | 数据从哪来 | 用来做什么 | 代码 |
|---|---|---|---|
| 菜单 | GET /users/me/menus |
侧栏有没有这项 | 动态路由本身 |
| 路由 meta | 路由上的 roles、auths |
前端静态的页面角色、按钮编码 | hasAuth、v-auth、Auth |
| 后端权限标识 | GET /users/me/permissions |
按钮能不能看见,和接口权限标识对齐 | hasPerms、Perms、v-perms |
这三套不互相代替。
菜单没有这项,用户进不了页面。菜单有这项,只说明后端把页面菜单分给了角色,不表示每个按钮都分了。
meta.auths 是前端自己写在路由上的编码,例如 btn.add。后端菜单数据里通常没有这个字段。用 v-auth="'btn.add'" 时,如果当前路由 meta.auths 是空的,hasAuth 直接返回 false,按钮会被拿掉。
permissions 才是后端的 admin:user:Create 这种标识。对接 owl-admin 时,按钮用这一套。
import { hasPerms, hasAuth } from "@bit-labs.cn/owl-ui";
hasPerms("admin:user:Create");
hasAuth("btn.add");
数组都是「全部满足」:hasPerms(["a", "b"]) 要求两个都有。只想满足一个,自己用 ||。
超管的 permissions 是 ["*:*:*"],hasPerms 直接通过。hasAuth 不看这个通配,它只看当前路由的 meta.auths。
评论
加载评论中…