Django权限管理系统设计分析

权限管理顾名思义,其实就是角色控制权限的系统,每个用户对应一个角色,每个角色有对应的权限,比如公司会有CEO,总监,销售经理,销售员,每个人的权限都不一样,那我们给他展示的url也都不同

一、首先创建项目,再创建一个名为rbac的app

  修改配置文件settings,将css以及js、img等放到static文件夹下

二、表结构设计

 设计表:

  创建五个类,七张表:

  菜单表,权限组,权限表,用户表,角色表,

角色表和权限表是多对多的关系(一个角色可以有多个权限,一个权限可以对应多个角色)

用户表和角色表是多对多的关系(一个用户可以有多个角色,一个角色有多个用户)

 

models.py

 

我们一般是先看到的是列表页面,在这个页面上是否显示添加,是否显示编辑,是否显示删除,都是需要判断的, 有无添加权限,有无删除权限,有无编辑权限,我们可以给每一个url一个代号,将代号取出来放在一个列表里面

 

把这个字典存到session中当你访问页面的时候我就知道你有什么权限一个url对应一个code 多个url对应一个组.

三、通过Django-admin录入数据

先创建一个超级用户:python3 manage.py createsuperuser

用户名:root

密码:a123456

 在admin.py中做如下配置:

 

models.py中做如下配置,就可以在添加的时候显示中文了。

 

 

 

 

 四、编写登录

  利用Django的中间件进行控制,没有登录的用户不能直接访问内部的url,而且只能访问admin,login,index这三个url,将其设置为白名单,用户登录成功后,将用户信息方法哦session里边,进行权限访问时去session里边读取,如果有的话进行url跳转,如果没有的话返回‘’无权访问‘’

   1.在settings内设置白名单:

  2.编写中间件控制时,必须继承MiddlewareMixin这个类

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值