DEDECMS后台三级子栏目权限添加修复,频道管理员权限分配问题解决
2013-08-09 13:10
447 查看
昨天在增加了一个“频道管理员”,并赋予权限栏目之后,登陆后台却只能看到一级和二级目录,无法看到三级目录。查找原因后发现确实是dede的一个小缺陷。
导致产生这个缺陷的原因是dede的后台设置赋予“频道管理员”栏目时,dede并没有将子栏目的管理权限顺延给父栏目。就像是你找了一个带孩子的老婆,而新老婆的孩子和你并没有血缘关系一样,要解决这个问题其实很简单:就是在原有的二级循环上面加个三级循环或者更多估计三级多数也就到头了~~
首先,你找到dede/目录下的sys_admin_user_edit.php文件,然后查找
//显示用户信息
$randcode = mt_rand(10000,99999);
$safecode = substr(md5($cfg_cookie_encode.$randcode),0,24);
$typeOpti***** = '';
。。。。。。
直到:include DedeInclude('templets/sys_admin_user_edit.htm');
等代码,然后用以下代码来替换即可;
//显示用户信息
$randcode = mt_rand(10000,99999);
$safecode = substr(md5($cfg_cookie_encode.$randcode),0,24);
$typeOpti***** = '';
$row = $dsql->GetOne("Select * From `#@__admin` where id='$id'");
$typeids = explode(',', $row['typeid']);
$dsql->SetQuery("Select id,typename From `#@__arctype` where reid=0 And (ispart=0 Or ispart=1)");
$dsql->Execute('op');
while($nrow = $dsql->GetObject('op'))
{
$typeOpti***** .= "<option value='{$nrow->id}' class='btype'".(in_array($nrow->id, $typeids) ? ' selected' : '').">{$nrow->typename}</option>\r\n";
$dsql->SetQuery("Select id,typename From #@__arctype where reid={$nrow->id} And (ispart=0 Or ispart=1)");
$dsql->Execute('s');
while($nrow = $dsql->GetObject('s'))
{
$typeOpti***** .= "<option value='{$nrow->id}' class='stype'".(in_array($nrow->id, $typeids) ? ' selected' : '').">—{$nrow->typename}</option>\r\n";
$dsql->SetQuery("Select id,typename From #@__arctype where reid={$nrow->id} And (ispart=0 Or ispart=1)");
$dsql->Execute('t');
while($nrow = $dsql->GetObject('t'))
{
$typeOpti***** .= "<option value='{$nrow->id}' class='stype'".(in_array($nrow->id, $typeids) ? ' selected' : '').">─{$nrow->typename}</option>\r\n";
}
}
}
include DedeInclude('templets/sys_admin_user_edit.htm');
文件上传,一切ok~~~~~~~~~
导致产生这个缺陷的原因是dede的后台设置赋予“频道管理员”栏目时,dede并没有将子栏目的管理权限顺延给父栏目。就像是你找了一个带孩子的老婆,而新老婆的孩子和你并没有血缘关系一样,要解决这个问题其实很简单:就是在原有的二级循环上面加个三级循环或者更多估计三级多数也就到头了~~
首先,你找到dede/目录下的sys_admin_user_edit.php文件,然后查找
//显示用户信息
$randcode = mt_rand(10000,99999);
$safecode = substr(md5($cfg_cookie_encode.$randcode),0,24);
$typeOpti***** = '';
。。。。。。
直到:include DedeInclude('templets/sys_admin_user_edit.htm');
等代码,然后用以下代码来替换即可;
//显示用户信息
$randcode = mt_rand(10000,99999);
$safecode = substr(md5($cfg_cookie_encode.$randcode),0,24);
$typeOpti***** = '';
$row = $dsql->GetOne("Select * From `#@__admin` where id='$id'");
$typeids = explode(',', $row['typeid']);
$dsql->SetQuery("Select id,typename From `#@__arctype` where reid=0 And (ispart=0 Or ispart=1)");
$dsql->Execute('op');
while($nrow = $dsql->GetObject('op'))
{
$typeOpti***** .= "<option value='{$nrow->id}' class='btype'".(in_array($nrow->id, $typeids) ? ' selected' : '').">{$nrow->typename}</option>\r\n";
$dsql->SetQuery("Select id,typename From #@__arctype where reid={$nrow->id} And (ispart=0 Or ispart=1)");
$dsql->Execute('s');
while($nrow = $dsql->GetObject('s'))
{
$typeOpti***** .= "<option value='{$nrow->id}' class='stype'".(in_array($nrow->id, $typeids) ? ' selected' : '').">—{$nrow->typename}</option>\r\n";
$dsql->SetQuery("Select id,typename From #@__arctype where reid={$nrow->id} And (ispart=0 Or ispart=1)");
$dsql->Execute('t');
while($nrow = $dsql->GetObject('t'))
{
$typeOpti***** .= "<option value='{$nrow->id}' class='stype'".(in_array($nrow->id, $typeids) ? ' selected' : '').">─{$nrow->typename}</option>\r\n";
}
}
}
include DedeInclude('templets/sys_admin_user_edit.htm');
文件上传,一切ok~~~~~~~~~
相关文章推荐
- DEDECMS后台三级子栏目权限添加修复,频道管理员权限分配问题解决
- DEDECMS后台频道管理员权限三级子栏目权限添加分配问题解决
- 网站后台不能添加图片,如果是服务器权限问题,应该如何解决?方法如下
- 织梦dedecms后台添加图片style全部都变成st<x>yle的解决办法
- (已解决scientificlinux 与windows7的双系统问题)在linux下修复/添加windows启动/引导项
- 使用openprocess时解决问题,关于权限分配有感
- win7下解决烦人的管理员权限问题
- java使用nircmd代替cmd解决管理员权限问题
- 蚂蚁分类信息系统5.8 解决后台管理员编辑信息时相关图片无法显示的问题
- [解决]Hive权限中超级管理员设置的问题
- 解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
- 给网站后台添加用户权限的问题
- 解决“要运行Visual Studio 2005 sp1,建议使用管理员权限”的问题
- ecshop添加菜单及权限分配问题
- 关于dedecms织梦后台的三个问题的解决方法
- 解决“要运行Visual Studio 2005 sp1,建议使用管理员权限”的问题
- DedeCms后台添加编辑文章空白的解决方法
- 解决win8/8.1程序不能以管理员权限自动启动问题
- 关于shiro后台权限改动,重新登录后发现权限还是以前的问题的解决
- 解决DedeCMS 5.7后台联动不能添加二级栏目