PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

多商家超级管理员的权限控制

管理员 2024-12-14
Fastadmin
10

image.png

提醒
插件适用于v1版,v2版需要把编辑管理员edit()方法里面的manystore_pid改为shop_id。

功能介绍
基于多商家管理的额外补充,用于控制多商家超级管理员的权限,目前本插件只允许添加二级权限。

插件下载方法

GitHua:https://github.com/senson2018/super_control.git

百度链接:https://pan.baidu.com/s/1BPSb--0YEhn-gcq-lvR1Lw
百度提取码:14fr

使用方法
(必须安装多商家管理插件,请自行到插件市场搜索【多商家管理】),离线安装本插件,安装完毕后,默认已存在一个超级权限
image.png

首次安装多商家管理插件,记得首先给商家生成菜单,否则本插件设置权限的时候会是空白
image.png
image.png

数据库会新增加两个表
一个是manystoreextend_auth_groupx超级管理员权限表,一个是manystoreextend_auth_groupx_lead表与多商家超级管理员绑定的关联表
image.png

接着,使用在线命令行或其他方法生成manystoreextend_auth_groupx表和manystoreextend_auth_groupx_lead表的控制器和模型。

然后,复制以下前端代码到多商家管家的add.html

<div class="form-group">        <label class="control-label col-xs-12 col-sm-2">{:__('ManystoreAuthGroupxId')}:</label>        <div class="col-xs-12 col-sm-8">            <input id="c-manystore-auth-groupx-id" class="form-control selectpage" name="row[manystore_auth_groupx_id]" data-source="manystoreextend/auth_groupx/index" value="1">        </div>    </div>

效果
image.png

复制以下前端代码到多商家管家的edit.html

<div class="form-group">        <label class="control-label col-xs-12 col-sm-2">{:__('ManystoreAuthGroupxId')}:</label>        <div class="col-xs-12 col-sm-8">            <input id="c-manystore-auth-groupx-id" class="form-control selectpage" name="row[manystore_auth_groupx_id]" data-source="manystoreextend/auth_groupx/index" value="{$manystore_auth_groupx_id}">        </div>    </div>

效果
image.png

接着,修改manystore/index.php 里面的add方法,判断插入的数据是否是数据库字段
image.png

image.png

然后,加入以下代码绑定超级管理员与权限,并查找已选择的权限

AuthGroupxLead::create([    'manystore_id'=> $this->model->id,    'manystore_auth_groupx_id' => $params['manystore_auth_groupx_id']]);$ag = AuthGroupx::where(['id'=> $params['manystore_auth_groupx_id']])->field('rules')->find();

效果
image.png

接着,修改manystore/index.php 里面的edit方法,判断插入的数据是否是数据库字段
image.png
image.png

然后,在manystore/index.php 里面的edit方法加入以下代码,注意模型的正确引入

$magl = AuthGroupxLead::where(['manystore_id'=> $ids])->find();                    if(!$magl) {                        AuthGroupxLead::create([                            'manystore_id'=> $ids,                            'manystore_auth_groupx_id' => $params['manystore_auth_groupx_id']                        ]);                    }                    $magl->manystore_auth_groupx_id = $params['manystore_auth_groupx_id'];                    $magl->save();                    $ag = AuthGroupx::where(['id'=> $params['manystore_auth_groupx_id']])->field('rules')->find();                    $agList = explode(',', $ag['rules']);                    $mag = new ManystoreAuthGroup();                    $magList = collection($mag->where(['manystore_pid' => $ids])->field('id,pid,rules')->select())->toArray();                    foreach ($magList as &$magListV) {                        if($magListV['rules'] == '*') {                            $magListV['rules'] = $ag['rules'];                            continue;                        }else if($magListV['pid'] == 0){                            $magListV['rules'] = $ag['rules'];                            continue;                        }                        $magListV['rules'] = explode(',', $magListV['rules']);                        $ain = array_intersect($agList, $magListV['rules']);                        if($ain) {                            $magListV['rules'] = implode(',', $ain);                        }else {                            $magListV['rules'] = '0';                        }                    }                    $mag->isUpdate(false)->saveAll($magList);

效果
image.png

然后,在这个edit方法的最后return $this->view->fetch();的前面加入以下代码

$magl = AuthGroupxLead::where(['manystore_id'=> $ids])->find();        $this->assign('manystore_auth_groupx_id', $magl?$magl['manystore_auth_groupx_id']:1);

效果
image.png

如需卸载,请进入插件管理,点击本地插件进行卸载
image.png

结尾
修改超级管理员权限后,会连带修改超级管理员权限下面的其他人员的权限。


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部