zoukankan      html  css  js  c++  java
  • django基础知识~RBAC实验部分代码记录

    一 简介:小小的记录下具体的思路和相关代码

    二 具体阐述    

       # setting处理逻辑    

       PERMISSION_SESSION_KEY = 'permissions' #这里填写需要存取权限的session-key
      MENU_SESSION_KEY = 'menus'
      WHITE_URL_LIST = [ #放置的url白名单
      r‘^/login/$‘,
      r‘^/logout/$‘,
      r‘^/reg/$‘,
      r‘^/admin/.*‘,
       ]

       #login处理逻辑
         user1=User.objects.filter(name=name,pwd=pwd).first() #登录校对获取queryset对象
         request.session['user_id']=user1.pk #sesssion存储用户ID
         Role.objects.filter(user__name=user1).values('permissions__url').distinct()#去重取得用户的权限列表
         request.session[setting.PERMISSION_SESSION_KEY]=permission_list # session存储用户权限列表
         #middle处理逻辑   

        from django.utils.deprecation import MiddlewareMixin
        from django.conf import settings

        # 白名单设立

      for i in settings.WHITE_URL_LIST:
        if re.match(i, current_url):
         return

       # 登录判断
        if not request.session.get("user_id"):
      # 权限判断
       for ret in request.session["permission"]:
         if re.search(ret,currentpath):

           

    
    
  • 相关阅读:
    nginx,php for window 7(64bit) install
    ret.concat.apply([],ret)
    JavaScript:constructor属性
    jquery 插件address
    学习笔记(C++)
    关于网站缓存设计的几点思考
    Ubuntu20.04 换源 Learner
    什么叫程序集
    c# 中堆和栈的区别
    命名空间和类的概念
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/11017651.html
Copyright © 2011-2022 走看看