需求:在一个前后端分离的项目里,实现对于“系统管理员”类用户的权限管理功能。
- 每个管理员都可以属于一个或者多个角色;
- 每个角色有权限进行一个或者多个操作。
设计:
- 权限控制分成两层,分别是接口访问权限,和操作权限。
- 接口访问权限,通过一个切片来实现。比如普通用户不能访问管理员接口。
- 数据库中设计以下几个表:管理员,角色,操作,管理员和角色之间的关系表,角色和操作之间的关系。
- 内置一个超级管理员
接口:
- 管理员登录
- 创建管理员
- 管理员编辑
- 管理员删除
- 编辑管理员角色
- 角色创建
- 角色编辑
- 角色删除
- 编辑角色权限
- 操作创建
- 操作编辑
- 操作删除
- 查询某角色所有信息
- 查询某管理员所有信息
- 查询某操作所有信息
- 返回某个角色的所有管理员列表
工程步骤:
- 设计数据库表结构
- admins
- roles
- operations
- map_admin_roles
- map_role_operations
- 创建一个新的切片,用来做访问路由的权限验证
- 列出来接口
- 挨个实现