zoukankan      html  css  js  c++  java
  • django后台权限管理(基于角色控制管理)

    组件源码: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.
    个人小站,欢迎访问!http://klvr.xyz
  • 相关阅读:
    简单的股票分析系统
    gtest日志在工程项目中的应用
    doctest初次体验
    python写的读取json配置文件
    logbook日志系统
    python3 pyodbc简单使用
    numpy中dtype
    python获取代码行号
    Python操作SQLServer示例(转)
    log4j与log4j.properties的配置
  • 原文地址:https://www.cnblogs.com/xxks/p/14773738.html
Copyright © 2011-2022 走看看