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
  • 相关阅读:
    ZOJ 2158 Truck History
    Knight Moves (zoj 1091 poj2243)BFS
    poj 1270 Following Orders
    poj 2935 Basic Wall Maze (BFS)
    Holedox Moving (zoj 1361 poj 1324)bfs
    ZOJ 1083 Frame Stacking
    zoj 2193 Window Pains
    hdu1412{A} + {B}
    hdu2031进制转换
    openjudge最长单词
  • 原文地址:https://www.cnblogs.com/xxks/p/14773738.html
Copyright © 2011-2022 走看看