ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-05-16 14:35:50  阅读:180  来源: 互联网

标签:obj name 管理 permission request django rbac 权限


组件源码: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.

 

标签:obj,name,管理,permission,request,django,rbac,权限
来源: https://www.cnblogs.com/xxks/p/14773738.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有