权限控制的级别:
实现权限控制系统的流程:
- 用户登陆成功之后,将权限和菜单信息放入session
- 每次访问时,在中间件中做权限校验
- inclusion_tag实现的动态菜单
如何实现控制到按钮的呢?
- 用户登陆时,用户所拥有的权限(别名 == django 路由name)构造成一个字典;
在页面中写了一个django模板的filter来进行判断是否显示;
为什么要在中间件中做校验呢?
- 所有的访问在到达视图函数之前,必须经过中间件,所以在中间件中对访问做处理比较简单
模板中的特殊方法:inclusion_tag, simpletag, filter
inclusion_tag:
simpletag:
filter:
权限中使用的表:
会使用到六张表
- 用户表
- 角色表
- 权限表
- 用户角色关系表
- 角色权限关系表
- 菜单表
权限表中的字段
权限系统的流程(思维导图)
如何实现粒度到数据行
修改权限之后,如想应用最新权限该怎么做?
两个方法
- 重新登陆
- 不用重新登陆,如何完成? 更新涉及的所有用户session信息
如何实现权限系统?
原文:https://www.cnblogs.com/bibicode/p/13623692.html