如何实现权限系统?

权限控制的级别:
  • 力度控制到按钮级别的权限控制
实现权限控制系统的流程:
  1. 用户登陆成功之后,将权限和菜单信息放入session
  2. 每次访问时,在中间件中做权限校验
  3. inclusion_tag实现的动态菜单
如何实现控制到按钮的呢?
  • 用户登陆时,用户所拥有的权限(别名 == django 路由name)构造成一个字典;
    在页面中写了一个django模板的filter来进行判断是否显示;
为什么要在中间件中做校验呢?
  • 所有的访问在到达视图函数之前,必须经过中间件,所以在中间件中对访问做处理比较简单
模板中的特殊方法:inclusion_tag, simpletag, filter

inclusion_tag:

  • 通过一个模板渲染数据

simpletag:

  • 返回字符串

filter:

  • 用来做判断
权限中使用的表:
会使用到六张表
  • 用户表
  • 角色表
  • 权限表
  • 用户角色关系表
  • 角色权限关系表
  • 菜单表
权限表中的字段
权限系统的流程(思维导图)
如何实现粒度到数据行
  • 添加一条更细粒度的表,做条件用;
修改权限之后,如想应用最新权限该怎么做?
两个方法
  1. 重新登陆
  2. 不用重新登陆,如何完成? 更新涉及的所有用户session信息
posted @ 2020-09-06 21:18  bibicode  阅读(400)  评论(0)    收藏  举报