一枚小前端记录下最近设计的简易RBAC权限
先放一下表结构
user_info
app.model.UserInfo.belongsTo(app.model.Role,{
foreignKey: 'role_id',
targetKey: 'role_value'
});
外键role_id 关联 role.role_value
role
menu
app.model.Menu.hasMany(app.model.Permission,{
foreignKey: 'menu_id',
targetKey: 'id',
as: 'children'
});
permission
app.model.Permission.belongsTo(app.model.Menu,{
foreignKey: 'menu_id',
targetKey: 'id'
});
以上,基于role来控制权限访问
- 用户:角色(1:1) - user_info.role_id 关联 role.role_value
- 角色:菜单(1:N) - role.role_value 关联 menu.role_level
- 角色:功能权限(1:N) - role.role_value 关联 permission.role_level
- 菜单:功能权限(1:N) - menu.id 关联 permission.menu_id
前端交互页面
给角色分配路由及路由下的功能权限。再通过给用户分配角色,来达到控制用户的路由权限和功能权限。
路由数据通过接口判断角色返回数据给前端,前端addRoute生成动态路由
功能权限值一样通过接口返回,存入store。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。