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 ...
随机推荐
- Microsoft Build 2021第二天
C++20 Ranges are complete in Visual Studio 2019 version 16.10 https://devblogs.microsoft.com/cppblog ...
- 整理DB2左补零,右补零的方法
在项目中经常遇到需要左补零,右补零的情况,在DB2实验环境中展示 1.左补零(1)数字左补零,数字长度不定用right(digits(cast(expression as bigint)),NUM)能 ...
- Java自学网站--十几个网站的分析与评测
简介 很多想学Java的人不知道怎样选教程,本文对Java自学网站进行评测. 本文不带主观倾向,只客观分析各个网站的区别. 第1类:大型培训机构(黑马等) 典型机构 黑马.尚硅谷.动力节点.白马.千 ...
- 流水线中便捷迭代,鲲鹏DevKit 23.0新能力抢先看
本文分享自华为云社区<鲲鹏DevKit 23.0:流水线中便捷迭代鲲鹏版本,迁移.开发.调优无缝衔接>,作者:华为云社区精选 . 数字时代,海量的行业应用驱动着多样性算力的飞速发展,以鲲鹏 ...
- 一次考试的dp题
很明显是dp 看题目的时候我们先进行初步的思考,发现一个性质 一个点时不可能被重复覆盖三次的很显然,如果一个点被覆盖了3次,这3个覆盖他的区间一定是有一个区间被完全包含的,因为有贡献的左右端点只有两个 ...
- 简述location规则优先级-实现域名跳转-不同语言-终端跳转-错误页面返回首页-腾讯公益首页
1.简述location的常见规则优先级,并且逐个验证: = :精确匹配(必须全部相等) #精准匹配优先级最高 ~ :大小写敏感(正则表达式) #一般使用~*忽略大小写匹配 (正则表达式 有上下区分, ...
- Python 批量合并图片到word文档
这段代码是一个用Python编写的功能,它将指定文件夹中的所有图片插入到Word文档中并保存.以下是代码的主要步骤和功能: 导入必要的库 Python中的docx库用于操作Word文档,glob库用于 ...
- JAVA多线程(2)——锁(对象锁和类锁)
1.如下代码 1 public class TestSync1 implements Runnable { 2 Timer1 timer = new Timer1(); 3 public static ...
- C#判断字符串的显示宽度
C#判断字符串的显示宽度 起因: 公司有一个使用项目使用HTML转换为PDF,其中有一个表格,表格的最后一列中的单元格,其字符串超长后会被丢弃,而不是换行到下一行展示(HtmlToPdf渲染引擎导致的 ...
- 中龙技术 | HSCSEC CRY + MISC WP
CRYPTO[HSC-1th] Easy SignIn 5445705857464579517A4A48546A4A455231645457464243566B5579556C7053546C4A4E ...