用户权限
1. RBAC介绍
- 权限是什么?
- 理解什么是RBAC ?
- 具体应该怎么设计用户权限的管理?
2. RBAC表设计
- 掌握RBAC表设计, 可以实现表结构&表关系的分析
- 根据表结构的设计定义相关模型类
- 通过django admin 管理后台,将前端管理员的权限插入到权限表中。使管理员可以在前端进行权限管理。
3. 权限
完成1 & 2
- RBAC路由管理, 后端接口实现权限的增删改查。
- 自定义RBAC中间件,实现对用户的请求的鉴权,有权限才允许访问;否则拒绝访问。
- 修改JSONWebTokenAuthentication的底层源码,实现鉴权。
- 尝试在rest_framework的全局配置中解决权限校验
from rest_framework.permissions import BasePermission
import re
class MyPermission(BasePermission):
def has_permission(self, request, view):
# 权限认证,忽略登录的视图
if re.findall(r"login|admin", request.path_info, re.I):
return True
# 会话认证通过,会有request.user
# 这里先查询用户
user = User.objects.filter(id=1).first()
for i in user.role.all():
if i.name == "管理员":
# 有权限访问
return True
else:
return False
然后配置全局鉴权:
REST_FRAMEWORK = {
"DEFAULT_PERMISSION_CLASSES": ("users.utils.MyPermission", ),
}
4. 前端页面管理权限
在前端,登录管理员账号,实现权限的管理。(增删改查)
将当前系统中的所有其他的url地址,加入到权限表中。