在前后端分离的单页应用中,RBAC这样的权限模块一般我们的做法是,当用户登录的时候,后台返回当前用户所拥的全部角色的权限集(去重),这些权限集都是唯一的key.如
他们定义了每个功能的增删查改,或者更多。像Element UI Admin里面的菜单(src/menu/menu.js),有一个关键字permission,这个权限就是当前菜单的查看功能。在index.js(src/menu/index.js)会结合当前用户权限过滤一次在导出去渲染。而其他权限则会在每个vue单页文件里定义一个数据
actionPermission:{
add : this.$Func.hasPermission('StudentRecordsAdd'),
edit : this.$Func.hasPermission('StudentRecordsEdit'),
delete : this.$Func.hasPermission('StudentRecordsDelete'),
、、、、
},
这样,添加按钮或者表格渲染就可以通过v-if来控制了,哈哈。当然,后端是通过中间件来控制每个api的。