需求:在一個前后端分離的項目里,實現對於“系統管理員”類用戶的權限管理功能。
- 每個管理員都可以屬於一個或者多個角色;
- 每個角色有權限進行一個或者多個操作。
設計:
- 權限控制分成兩層,分別是接口訪問權限,和操作權限。
- 接口訪問權限,通過一個切片來實現。比如普通用戶不能訪問管理員接口。
- 數據庫中設計以下幾個表:管理員,角色,操作,管理員和角色之間的關系表,角色和操作之間的關系。
- 內置一個超級管理員
接口:
- 管理員登錄
- 創建管理員
- 管理員編輯
- 管理員刪除
- 編輯管理員角色
- 角色創建
- 角色編輯
- 角色刪除
- 編輯角色權限
- 操作創建
- 操作編輯
- 操作刪除
- 查詢某角色所有信息
- 查詢某管理員所有信息
- 查詢某操作所有信息
- 返回某個角色的所有管理員列表
工程步驟:
- 設計數據庫表結構
- admins
- roles
- operations
- map_admin_roles
- map_role_operations
- 創建一個新的切片,用來做訪問路由的權限驗證
- 列出來接口
- 挨個實現