RBAC权限分配
RABC:基于角色的权限访问控制(Role-Based Access Control)
一般在登录系统认证通过后,会先确定的该用户的操作权限,判断用户的后续操作是否合法!
RABC至少需要三张表:用户表--角色表--权限表(多对多的关系比较合理)
用户表:用来存储用户名和密码,进行登录校验,可以重写User表,使用django内置的auth认证系统,也可自定义;
角色表:对用户角色进行分配,
权限表:存储所有需要进行权限分配的url请求路径
RBAC权限分配操作过程:
用户登录,通过用户表校验用户名和密码
登录成功,记录用户登录状态,同时查询(通过用户关联的权限表)记录当前用户的权限(可以记录在django的session表)
访问认证,对每个url的请求事先进行登录状态和权限的验证(可以放在中间件的process_request中,注意设置相应的放行白名单)