后台管理员的权限管理实现

需求:在一个前后端分离的项目里,实现对于“系统管理员”类用户的权限管理功能。

  1. 每个管理员都可以属于一个或者多个角色;
  2. 每个角色有权限进行一个或者多个操作。

设计:

  1. 权限控制分成两层,分别是接口访问权限,和操作权限。
  2. 接口访问权限,通过一个切片来实现。比如普通用户不能访问管理员接口。
  3. 数据库中设计以下几个表:管理员,角色,操作,管理员和角色之间的关系表,角色和操作之间的关系。
  4. 内置一个超级管理员

接口:

  1. 管理员登录
  2. 创建管理员
  3. 管理员编辑
  4. 管理员删除
  5. 编辑管理员角色
  6. 角色创建
  7. 角色编辑
  8. 角色删除
  9. 编辑角色权限
  10. 操作创建
  11. 操作编辑
  12. 操作删除
  13. 查询某角色所有信息
  14. 查询某管理员所有信息
  15. 查询某操作所有信息
  16. 返回某个角色的所有管理员列表

 工程步骤:

  • 设计数据库表结构
    • admins
    • roles
    • operations
    • map_admin_roles
    • map_role_operations
  • 创建一个新的切片,用来做访问路由的权限验证
  • 列出来接口
  • 挨个实现