DEDECMS 后台系统用户授权目录更改为无限级(默认为二级授权)
在做一个学校的项目,分类有四级分类,总共一百多个分类,因为每个分类对应不同的老师,用于上传资料作为考核,但是添加系统用户的时候发现DEDECMS只有两级分类,所以修改啦一些代码,目前不知道是否修改完全,暂时来看,四级目录授权功能是可以授权的,下面是修改的代码。
1.添加/修改系统用户-展示全部分类
打开dede/sys_admin_user_add.php 和dede/sys_admin_user_edit.php
在顶部下引入文件,具体啥用不清楚,因为之前也是参考别人的文章,我估计不引用也没关系,但是我没时间测试,先这样吧
require_once(dirname(__FILE__)."/config.php");
require_once(DEDEADMIN."/inc/inc_catalog_options.php"); // 引入这行代码
修改底部
$dsql->Execute('op');
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
include DedeInclude('templets/sys_admin_user_add.htm');
替换中间的代码为
$typeOptions .= GetOptionList(0,$cuserLogin->getUserChannel(),0);
2.修改include/typeunit.class.admin.php文件
找到
while($row = $this->dsql->GetObject())
{
if($row->reid==0) continue;
$topidstr .= ($topidstr=='' ? $row->reid : ','.$row->reid);
}
在它下面添加以下代码
/*****************************修改代码,后台管理三级栏目授权开始*******************************/
// 获取所有顶级栏目id
$current_id = (string)$admin_catalogs[0];
$category_arr = [];
$categorys = explode(',',$admin_catalog);
foreach ($categorys as $key=>$value) {
array_push($category_arr,$categorys[$key]);
$this->dsql->SetQuery("SELECT reid FROM `#@__arctype` WHERE id in($categorys[$key]) group by reid ");
$this->dsql->Execute();
if(($reid = $this->dsql->GetObject()->reid) != 0) {
// 不是二级分类
array_push($category_arr,$reid);
// 继续判断是否为二级分类
$this->dsql->SetQuery("SELECT reid FROM `#@__arctype` WHERE id in($reid) group by reid ");
$this->dsql->Execute();
if(($reid = $this->dsql->GetObject()->reid) != 0) {
array_push($category_arr,$reid);
// 继续判断是否为二级分类
$this->dsql->SetQuery("SELECT reid FROM `#@__arctype` WHERE id in($reid) group by reid ");
$this->dsql->Execute();
if(($reid = $this->dsql->GetObject()->reid) != 0) {
array_push($category_arr,$reid);
// 继续判断是否为二级分类
$this->dsql->SetQuery("SELECT reid FROM `#@__arctype` WHERE id in($reid) group by reid ");
$this->dsql->Execute();
if(($reid = $this->dsql->GetObject()->reid) != 0) {
array_push($category_arr,$reid);
// 继续判断是否为二级分类
$this->dsql->SetQuery("SELECT reid FROM `#@__arctype` WHERE id in($reid) group by reid ");
$this->dsql->Execute();
}
}
}
}
}
此处写得有点糟糕,循环,我因为只有四级就先这么简单写
然后在$admin_catalogs = array_unique($admin_catalogs);后添加一行
$admin_catalogs = array_unique($category_arr);
DEDECMS 后台系统用户授权目录更改为无限级(默认为二级授权)的更多相关文章
- Linux—用户新建目录和文件的默认权限设置:umask详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 我们有没有思考过一个问题,在登录Linux系统后,我们创建的目录或者文件的权限,为什么每次创建都是统一的?我们做以下实验:新建一 ...
- dedecms后台系统基本参数标题
1,站点设置 2,核心设置 3,附件设置 4,会员设置 6,性能选项 7,其它选项 8,模块设置 在E:\wamp\www\dededln\back\inc\configgroup.txt
- 【微信支付】公众号、商户基础配置和流程(包括设置支付授权目录、测试支付目录和白名单、JS接口安全域名、授权回调域名等)
一.使用场景以及说明 使用场景:商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程. 说明:1.用户打开图文消息或者扫描二维码,在微信内置浏览器打开网 ...
- DEDECMS:将dedecms系统的data目录迁移到web以外目录
dedecms系统的data目录是系统缓存和配置文件的目录,一般都有可以读写的权限,只要是能够写入的目录都可能存在安全隐患,很多站长甚至给予这个目录可执行的权限,更是非常危险,所以我们建议将这个dat ...
- Windows10系统如何更改程序的默认安装目录?
Windows10系统如何更改程序的默认安装目录? 在Windows10系统的使用中,软件程序的默认安装目录是:C:\Program Files\...或者C:\Program Files(x86)\ ...
- SQL Server如何更改系统用户dbo的所属账号
在SQL Server的每个数据库中都有一个dbo系统用户,dbo是系统默认创建的,无法被删除,如下: dbo在内部其实是绑定了一个SQL Server账号的,可以通过其属性查看Login name, ...
- Mac 如何将apache的这个默认目录更改到用户目录下
如何将apache的这个默认目录更改到用户目录下. 做如下更改即可: 1.在自己的用户目录下新建一个Sites文件夹,我的用户目录为gaocuili 2.进到cd /etc/apache2/users ...
- Python实现自动更改系统用户密码,生成随机密码
算是一个实用的例子,定制系统任务,并将随机密码上传至日志服务器,实现定期修改密码: 部分代码: 1 #!/usr/bin/env python 2 #coding:utf-8 3 import ran ...
- 玩转Django2.0---Django笔记建站基础八(admin后台系统)
第八章 admin后台系统 admin后台系统也成为网站后台管理系统,主要用于对网站前台的信息进行管理,如文字.图片.影音和其他日常使用文件的发布.更新.删除等操作,也包括功能信息的统计和管理,如用户 ...
- 如何将Superset嵌入后台系统之实践
1. 前言 此次实践过程全属个人学习,我选择了在window下安装Superset,并进行嵌入后台系统实践.对此进行实践过程总结,实践成果分享给大家,供大家参考,如果你有更好的想法,欢迎留言交流. 2 ...
随机推荐
- Kafka Stream 流和状态
4.2将状态操作应用到Kafka Stream 在上图的拓扑中生成了一个购买-交易事件流,拓扑中的一个处理节点根据销售额来计算客户的奖励级分.但在这个处理其中,要做的也仅仅时计算单笔交易的总积分,并转 ...
- Gradle 设置全局镜像源
复制 init.gradle.kts 文件到 Windows 的 %USERPROFILE%/.gradle 或者 Linux 的 ~/.gradle 目录下.也可以直接复制文末的代码为 init.g ...
- 洛谷题解 | P5660 数字游戏
目录 题目描述 输入格式 输出格式 输入输出样例 说明/提示 题目简化 题目思路 AC代码 题目描述 小 K 同学向小 P 同学发送了一个长度为 8 的 01 字符串来玩数字游戏,小 P 同学想要 ...
- Python基础概要(一天快速入门)
文章目录 一 编程与编程语言 二 编程语言分类 三 主流编程语言介绍 四 Python介绍 五 安装python解释器 六 第一个python程序 七 变量 八 用户与程序交互 九 基本数据类型 十 ...
- Go语言常用标准库——context
文章目录 为什么需要Context 基本示例 全局变量方式 通道方式 官方版的方案 Context初识 Context接口 Background()和TODO() With系列函数 WithCance ...
- 铅华洗尽,粉黛不施,人工智能AI基于ProPainter技术去除图片以及视频水印(Python3.10)
视频以及图片修复技术是一项具有挑战性的AI视觉任务,它涉及在视频或者图片序列中填补缺失或损坏的区域,同时保持空间和时间的连贯性.该技术在视频补全.对象移除.视频恢复等领域有广泛应用.近年来,两种突出的 ...
- JDK21的虚拟线程是什么?和平台线程什么关系?
虚拟线程(Virtual Thread)是 JDK 而不是 OS 实现的轻量级线程(Lightweight Process,LWP),由 JVM 调度.许多虚拟线程共享同一个操作系统线程,虚拟线程的数 ...
- CF1878 A-G 题解
前言 赛时代码可能比较难看. 为什么 Div3 会出 4 道数据结构. A 判定 \(a\) 中是否有 \(k\) 即可. 赛时代码 B 奇怪的构造题. 令 \(a_1=1,a_2=3\),其他项由上 ...
- Nodejs环境打包前端项目
Node.js 在Linux下安装和环境搭建/编译项目 安装nodejs:1.下载nodejs源码包 wget https://nodejs.org/dist/v14.16.0/node-v14.16 ...
- Unity - Win平台修改窗口标题
原文参考 主要是通过user32.dll获取窗口句柄, 和Unity没有什么关系 using System; using System.Diagnostics; using System.Runtim ...