day4 crm客户管理之权限校验
用户访问,在中间件从session中获取用户权限信息,并进行权限验证
目录
# -*- encoding: utf-8 -*-
"""
@File : midle.py
@Time : 2021-12-16 8:59
@Author : tangsai
@Email : 294168604@qq.com
@Software: PyCharm
"""
import re
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import HttpResponse
class CheckPermission(MiddlewareMixin):
"""
用户权限信息校验
"""
def process_request(self, request):
"""
当用户请求刚进入时候出发执行
:param request:
:return:
"""
"""
1. 获取当前用户请求的URL
2. 获取当前用户在session中保存的权限列表 ['/customer/list/','/customer/list/(?P<cid>\\d+)/']
3. 权限信息匹配
"""
valid_url_list = [
'/login/',
'/admin/.*'
]
current_url = request.path_info
for valid_url in valid_url_list:
if re.match(valid_url, current_url):
print(valid_url,current_url)
# 白名单中的URL无需权限验证即可访问
return None
permission_list = request.session.get('luffy_permission_url_list_key')
if not permission_list:
return HttpResponse('未获取到用户权限信息,请登录!')
flag = False
for url in permission_list:
reg = "^%s$" % url
if re.match(reg, current_url):
flag = True
break
if not flag:
return HttpResponse('无权访问')
setting.py中间件配置新增路径
'web.md.midle.CheckPermission'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具