Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

后台管理员权限管理 - 删除管理员的BUG - 确认了有奖励不?

[复制链接]
Bacysoft.cn 发表于 2013-8-28 22:17:42 | 显示全部楼层 |阅读模式
最近在做一个项目的二次开发是发现的。

相关代码:source/admincp/admincp_founder.php 43 行
  1. "<input class="checkbox" type="checkbox" name="delete[]" value="$id]">",
复制代码
$id 的后面为啥跟了一个 “]”,这个应该是写代码时,多敲了一个符号!

然后,紧接着,59~63 行
  1.     if(!empty($_GET['delete'])) {
  2.                                         C::t('common_admincp_perm')->delete_by_cpgroupid_perm($cpgroupid);
  3.                                         C::t('common_admincp_member')->update($_GET['delete'], array('cpgroupid' => 0));
  4.                                         C::t('common_admincp_group')->delete($_GET['delete']);
  5.                                 }
复制代码
中间的三个操作,只有最后一个能够生效!

先说第一个:C::t('common_admincp_perm')->delete_by_cpgroupid_perm($cpgroupid);
原本应该是希望,删除相关管理员职务以后,在权限列表中,将这个管理员职务对应的权限全部删除!但是不好意思 $cpgroupid 就没有赋值,每次都是 0,也就无法清除权限数据表中对应管理员职务的所有权限!


第二个:C::t('common_admincp_member')->update($_GET['delete'], array('cpgroupid' => 0));
我猜想,原本的意思是希望在删除相关管理员职务以后,将该职务对应的管理员的 “cpgroupid” 值更新到 0 。但是很不好意思,也无法实现,原因是 SQL 中 where 的字段和对应的值不匹配,即原本需要提供 uid 的值,但是结果却给了 cpgroupid 的值!

这问题折磨我一天了,求奖励,谢谢!:)

评分

1

查看全部评分

下砂 发表于 2013-8-30 13:37:54 | 显示全部楼层
已反馈  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-3-9 09:39 , Processed in 0.031243 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表