首页 > 其他分享 >群控系统服务端开发模式-应用开发-基础框架开发补充

群控系统服务端开发模式-应用开发-基础框架开发补充

时间:2024-11-08 15:18:27浏览次数:7  
标签:控系统 rules butts 开发 empty key butt 权限 服务端

一、总控制补充

        在根目录下app文件夹下controller文件夹中修改Base总控制文件。需要添加操作者权限验证、获取操作者权限、设置操作者权限。

        1、权限验证

    //验证权限
    protected function checkRoleMenu($auth){
        if(empty($this->rules) || empty($this->key) || count($this->butts) == 0) $this->setAuth();
        if(!in_array($auth, $this->butts))throw new BaseError("权限不足,请联系管理员",50000,200);//赋值错误信息 权限验证
    }

        2、获取权限

    //获取权限
    protected function getRoleMenu(){
        if(empty($this->rules) || empty($this->key) || count($this->butts) == 0) $this->setAuth();
        $data['key'] = $this->key;
        $data['butts'] = $this->butts;
        return $data;
    }

        3、设置权限

    //设置权限
    protected function setAuth(){
        $resRole = Role::dataFind(['id' => $this->roleId],'role_key,menu_id,status',true);
        if(empty($resRole) || $resRole['status'] !== 1)throw new BaseError("该用户没有权限",50000,200);//赋值错误信息
        $rules = explode(',',$resRole['menu_id']);
        $butt = Redis::select(config('cache.stores.redis.cache_db'))->get('butt_list'.$this->userId);
        if(empty($butt)){
            $this->isUnserialize = false;
            $list = Menu::getAll([['id', 'in', $rules], ['status', '=', 1], ['is_menu', '=', 0]], 'menuname','sort DESC,id DESC');
            if(empty($list))throw new BaseError("该用户没有权限",50000,200);//赋值错误信息
            $butt = array_column($list,'menuname');
            Redis::select(config('cache.stores.redis.cache_db'))->setex('butt_list'.$this->userId,rand(40,80),serialize($butt));
        }
        $this->rules = $rules;
        $this->key = $resRole['role_key'];
        $this->butts = $this->isUnserialize == true ? unserialize($butt) : $butt;
    }

二、给后端添加、编辑、删除操作设置权限访问

        所有的启禁用控制接口、保存接口、删除接口都需要调用权限验证方法。代码如下

$this->checkRoleMenu('PermissionMenuIndexSave');//验证权限

标签:控系统,rules,butts,开发,empty,key,butt,权限,服务端
From: https://blog.csdn.net/m0_63603104/article/details/143572327

相关文章

  • 国标GB28181-2016平台LiteGBS国标GB28181软件,详细介绍LiteGBS视频监控系统
    智能视频监控系统利用图像处理、模式识别和计算机视觉技术,通过集成智能视频分析模块,借助计算机强大的数据处理能力,过滤无用或干扰信息,自动识别物体,提取关键信息,快速准确定位事故现场,判断异常情况,并以最优方式发出警报或触发相应动作。该系统实现全自动、全天候、实时监控,有效支持......
  • 【北京迅为】itop-3588开发板摄像头使用手册Android12 双摄方案
     本章节对应资料在网盘资料“iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\07_Android系统开发配套资料\08_Android12摄像头使用配套资料”目录下下载。 2.1Android12前摄+后摄网盘中默认的Android12源码支持四个摄像头单独打开,本小节我们来修改源码,实现同......
  • [AI大模型通过以下方式重塑软件开发流程]
     •代码自动生成:AI驱动的代码生成工具可以根据开发者输入的需求或注释自动生成代码,减少了手动编写代码的时间和工作量,提高了编码效率。  •智能调试与测试:AI可以分析代码库、错误日志以及用户反馈,自动识别潜在的缺陷和错误,并给出修复建议。同时,AI还能自动生成测试......
  • 网页版五子棋——用户模块(服务器开发)
    前一篇文章:网页版五子棋——WebSocket协议-CSDN博客目录·前言一、编写数据库代码1.数据库设计2.配置MyBatis3.创建实体类4.创建UserMapper二、前后端交互接口1.登录接口2.注册接口3.获取用户信息三、服务器开发1.代码编写2.测试后端接口·结尾·前言 ......
  • 【鸿蒙生态崛起,开发者有哪些机遇与挑战?】HarmonyOS NEXT 引领数字化未来
    文章目录前言一、HarmonyOSNEXT特点与升级二、全面突破操作系统核心技术三、鸿蒙生态全面守护用户隐私四、鸿蒙生态的崛起与开发者机遇五、全新鸿蒙生态引领数字化未来小结前言鸿蒙系统不断发展,有与安卓、iOS形成三足鼎立之势,且其在智能手机、智能穿戴、车载、......
  • 【SpringBoot开发】 文件上传 (秒传、断点续传、分片上传)
    原创Java技术前沿引言文件上传在软件开发项目中极为常见,涵盖了图片、音频、视频及各类文档的上传需求。对于小型文件,简单的Form表单上传机制通常足以应对。然而,当面对体积庞大的文件,如超过1GB的文件,或用户处于网络条件不佳的环境下时,传统的上传方式便显得力不从心。试想,用户......
  • 【ALINX 教程分享】基于 Z19-P 开发板实现 WIFI 无线通信的功能
     本教程基于ALINX开发板Z19-P,实现WIFI 无线通信的功能,WIFI模块使用 USB WIFIrtl8188cu。使用的usbwifi设备购买链接:http://e.tb.cn/h.gy25HiTTj7n5eNg?tk=zvvU3oWX4X特别提醒,本教程Z19-P所使用的 Linux环境是按照教程“Xilinx开发环境安装教程”搭建的,请......
  • 【征集令】2025年全球汽车软件开发状况调查,500美金等你拿!
    立即参与填写问卷汽车软件是汽车行业增长最快的领域之一,SDV、自动驾驶汽车、新能源汽车、网络安全和联网汽车都在汽车的未来发挥着重要作用。 Perforce是⼀家DevOps解决⽅案提供商,其产品覆盖版本控制软件、应⽤程序⽣命周期管理平台、敏捷规划软件以及⽤于静态代码分析的Klocw......
  • Springboot跃动小商品在线交易系统6503y(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,卖家,商品分类,商品品牌,商品信息开题报告内容一、选题背景与意义随着互联网技术的飞速发展,电子商务已成为推动全球经济一体化的重要力量。传统小商品市场......
  • PHP与Vue.js结合,开发现代Web应用的前后端分离
    随着前端技术的迅猛发展,前后端分离已成为现代Web应用开发的重要趋势。在这个架构中,PHP作为后端语言,配合Vue.js这样的前端框架,可以有效提高开发效率和用户体验。PHP与Vue.js的结合,使得开发者能够专注于各自领域的专业技术,形成高效、灵活的开发模式。PHP作为一种成熟的后端开发语言......