【实测】django测试平台的各种权限管理设计解决方案!超干货!

简介: 【实测】django测试平台的各种权限管理设计解决方案!超干货!

实测系列都是作者精心打造的单独解决方案文章,及其干货,请注意提前准备饮料,以免噎到...最后别忘了保存和分享。


   之前在培训内容中没有学到另外几种的小宝宝们,可以在这里也一起看看咯....对于任何p7以下同学,看完此篇文章,你的实力都会瞬间上升一大步哦~


   方案一:隐藏菜单入口法


【后端控制动态数据办法】:

首先菜单模板/组件内的数据要全部使用动态传输,数据由某自动运行接口控制,接口的视图层函数中,先通过request.user.id来判断该用户可看到哪些菜单条目,然后返回即可。

具体判断方案有俩种,一是以菜单为主体,制作菜单权限表,对每个菜单数据增加拥有用户字段。二是以用户为主体,在用户表中,增加所拥有的菜单权限字段。

前者线上维护的时候是以菜单列表页面中增删人员。后者在线维护时候是在个人权限设置页中勾选增删菜单条目。


【后端控制菜单权限办法】:

判断规则逻辑基本一样,主要是菜单的条目是写死在菜单组件/模板中的。而后端传输过来的是各个条目对该用户是否显示的布尔变量(真/假)。

django渲染的传统模板中,可以通过对菜单条目的具体css属性来控制,为style="display:none或者block"

vue-cli前后端分离的菜单组件中,可以通过菜单条目dom层元素的指令 v-if 的真假来控制,数据放在vue实例的data中即可。


   方案二:函数层判定函数控制法


【函数层调用式方案】

增加权限列表的增删改查,然后对每个权限都设计可使用的用户。

然后在视图层,对views.py中需要管控的普通函数,都在一开始调用一个权限判定函数,并传入想要关联的权限id和当前登录的用户id。

然后由该判定函数去数据库中匹配到目标权限,再检查用户id是否存在于该权限的用户字段中,若在则返回真,否则返回假。

然后具体函数再根据真假结果,来决定是否继续执行函数还是直接返回"无权限"


【函数层装饰器方案】

和上面方案的区别在于普通函数不是通过调用判定函数来进行判断,而是通过装饰器的方式,把判定权限函数作为装饰器装饰。并传入request请求等参数。

判定函数作为装饰器后,内部判断是否符合权限,如果判断有权限,则直接执行普通函数,否则引发报错或者警告或者返回"无权限"都可。

其他部分设计和上面方案相同。


   方案三:接口层统一拦截法


【通过url中的路径部分控制】

此方案可以脱离代码修改和重新部署的麻烦,完全在线维护,甚至在线增删权限。不过同样也要创造权限数据表,并且在线实现增删改查,权限数据需要有'关联用户'字段

主要是对urls.py的绝大部分需要监管的路由全部删除,改为由只有一个统一的re_path路由管理,并且指向为权限判定函数。

该函数通过接口请求过来的路由和接口携带的参数,通过数据库权限表来决定是否准许放行。


【通过views.py函数名控制】

此方案旨在views视图层拦截全部函数的执行,当接口进入需要调用函数的时候,必须先通过权限判定函数,并且传给函数名和接口所带用户id。

然后权限判定函数去数据库中找到该函数名关联的权限,再判断用户id是否在其‘关联用户’字段中

再考虑是否要放行。


 

   【后记】:


很多公司的平台上的权限管理都极为混乱,互相冲突不断。且都不具备第三种方案的在线增删权限的能力,最多也只是在线对已有权限和用户 的关联关系 进行增删的能力。

在这种情况下,应该使用 三层权限 设计方案:

1. 固定写死权限  :最高级别,写死到代码里,比如某个函数的执行内判断登录用户是否为特定超管。

2. 自定义特权:级别中等,由算法自动控制,在线增删改查。一旦某功能被自定义特权监管,则成与不成全看此。

3. 普通默认权限:级别最低,只有当某接口/函数 没有被固定写死权限和自定义特权 监管到的时候,才会使用普通默认权限,根据各个函数不同的特定规则,来决定是否执行。

若连普通默认权限都没有监管,则应全部准予放行。


好了,其实还有几种其他实现方案,今天就不说了,想继续听的欢迎关注

相关文章
|
2月前
|
数据挖掘 测试技术 项目管理
2025年测试用例管理看这一篇就够了 ----Codes 开源免费、全面的测试管理解决方案
Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对 30 人以下团队免费。它通过整合迭代、看板、度量和自动化等功能,简化测试协同工作,使敏捷测试更易于实施。并提供低成本的敏捷测试解决方案,如同步在线离线测试用例、流程化管理缺陷、低代码接口自动化测试和 CI/CD,以及基于迭代的测试管理和测试用时的成本计算等,践行敏捷测试。
2025年测试用例管理看这一篇就够了 ----Codes 开源免费、全面的测试管理解决方案
|
7月前
|
存储 安全 数据安全/隐私保护
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
247 0
|
4月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
158 4
|
4月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
245 1
|
5月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
106 2
|
6月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
185 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
4月前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
117 0
|
6月前
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
127 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
7月前
|
测试技术 开发工具 iOS开发
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
这篇文章是iOS自动化测试方案的第三部分,介绍了在没有MacOS系统条件下,如何使用WDA(WebDriverAgent)结合Python客户端库facebook-wda和tidevice工具,在Windows系统上实现iOS应用的自动化测试,包括环境准备、问题解决和扩展应用的详细步骤。
667 1
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
|
7月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
186 1

热门文章

最新文章

  • 1
    小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
  • 2
    3天功能开发→3小时:通义灵码2.0+DEEPSEEK实测报告,单元测试生成准确率92%的秘密
  • 3
    Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
  • 4
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 5
    基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
  • 6
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
  • 7
    「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
  • 8
    用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用
  • 9
    阿里云零门槛、轻松部署您的专属 DeepSeek模型体验测试
  • 10
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡