一枚小前端记录下最近设计的简易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。

ch5NfTR
1 声望0 粉丝