欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 群控系统服务端开发模式-应用开发-基础框架开发补充

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

2025/4/29 2:10:40 来源:https://blog.csdn.net/m0_63603104/article/details/143572327  浏览:    关键词:群控系统服务端开发模式-应用开发-基础框架开发补充

一、总控制补充

        在根目录下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');//验证权限

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词