RBAC介绍与美化admin后台页面
RBAC介绍
RBAC是基于角色的访问控制(Role-Based Access Control),在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。
RBAC用在公司内部系统用的多,对外的系统用的少
- 权限:员工管理、工资管理、测试...
- 角色(组、部门):开发部门、测试部门...
- 用户:tom、tony...
比如如下几个表设计:
用户表:
id | username | password |
---|---|---|
1 | tom | 123 |
2 | tony | 123 |
3 | jack | 123 |
权限表:
id | permission | url |
---|---|---|
1 | 查看 | /list/ |
2 | 添加 | /create/ |
3 | 编辑 | /update/ |
4 | 删除 | /destroy/ |
角色表:
id | role |
---|---|
1 | 管理员 |
2 | 开发部门 |
3 | 测试部门 |
角色与权限关系表:
id | role_id | permission_id |
---|---|---|
1 | 1 | 1 |
2 | 1 | 2 |
3 | 1 | 3 |
4 | 1 | 4 |
... |
用户与角色关系表:
id | user_id | role_id |
---|---|---|
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
基本的RBAC有五张表,RBAC也有六张表的情况,就是给权限表和用户表也建立多对多关系,因为可能有些用户只需要用到其中一个权限就够了,但是又没有合适的角色,所以给权限表和用户表建立关联。
Django的admin后台管理就是基于RBAC的:
- auth_user:用户表
- auth_permission:权限表
- auth_group:组,角色表
- auth_user_groups:用户和组中间表
- auth_group_permissions:组和权限中间表
- auth_user_user_permissions:用户和权限中间表
美化admin后台管理
Simple UI美化admin后台管理页面。
Simple UI是一款前后端分离的自带rbac的后台管理框架,由django+drf+vue=djagnovueadmin组成,官方网址:https://simpleui.72wo.com/simpleui/
快速上手
安装模块:
pip install django-simpleui
项目配置文件配置:
INSTALLED_APPS = [
'simpleui', # 添加
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
...
]
完成。
admin登录界面
admin管理首页