首页 > 其他 > 详细

django后台权限管理(基于角色控制管理)

时间:2021-05-16 19:00:10      阅读:20      评论:0      收藏:0      [点我收藏+]
组件源码:https://github.com/skxgood03/rbac
#
### 使用自定义rbac权限组件 1. 拷贝rbac组件 2. 清空migration目录 3. 在setting注册rbac ```python rbac, #django 2.0以上 ``` 4. 数据库迁移录入信息 5. 创建超级管理,添加权限信息(组件admin.py已经定制化) 6. 用户登录后做权限和菜单的初始化 `init_permission` ```python from web import models from rbac import models #调用自定义权限和菜单组件 from rbac.service.init_permission import init_permission def login(request): ‘‘‘ 登录代码,成功后调用init_permission传入request、登录用户信息(obj) ‘‘‘ if request.method == GET: return render(request,login.html) name=request.POST.get(name) pwd=request.POST.get(pwd) obj = models.UserInfo.objects.filter(name=name,password=pwd).first() if not obj: return render(request,login.html,{msg:用户名密码错误}) request.session[user_info] = {id:obj.id,name:obj.name} init_permission(request,obj) return redirect(/customer/list/) ``` 7. 应用中间件,进行权限校验 ```python rbac.middleware.rbac.RbacMiddleware ``` 8. 设置setting配置文件 ```python #############权限相关####################### PERMISSION_SESSION_KEY = permissions_list MENU_SESSION_KEY = menu_list #白名单 VALID_URL = [ ^/login/$, ^/admin/.*, ] ``` 9. 显示动态菜单(引入静态文件)、在菜单栏 `+{% menu request %}`、最上方导入`{% load rbac %}` 10. 粒度控制到按钮 1. ```python #加在需要控制的按钮上 {% if request|has_permission:add %} <td><a href="{% url ‘add‘ %}">增加</a></td> {% endif %} ``` 2.

 

django后台权限管理(基于角色控制管理)

原文:https://www.cnblogs.com/xxks/p/14773738.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!