您的位置:BugFree > 论坛 > 技术支持 > BugFree Discussion[BugFree讨论] > bugfree权限改了 ,重新修改出现报错
2009-06-15 10:26:00 bugfree权限改了 ,重新修改出现报错
#1
yoyolora
访问次数 : 15
注册日期 : 09-06-15 10:25
上次访问 : 09-10-29 21:05
我按照贴上写的更改了权限, 并且工作的很好, 但是主管要求增加一个功能,让程序可以判断
openby这个用户是哪个组的, 让后提出那个组的所有用户名, 这样那个组的所有人可以关闭这个
bug

因为我们工作流程是这样的, 我们部门做测试发现问题,录制bug, 其他部门修改后再由我们验证
但是修改后的第二次测试不会是openby(第一次)的那个人做, 这样如果bug解决了,
还得去找第一个测试的人去关闭bug。 所以希望能判断第一个测试的人是哪个组, 然后他的组员有权限
关闭bug(第二次测试的人会和第一个测试的人是同一组的)
yoyolora 最后编辑, 09-06-26 15:34
回帖
2009-06-15 11:13:03
#2
wwccss
访问次数 : 593
注册日期 : 05-05-01 10:08
上次访问 : 10-07-19 11:44
通过用户session里面记录的group信息来做对比不就可以了吗。如果session 里面没有登记用户组信息,就修改一下登陆的程序,登陆的时候,将用户所在的分组信息记录到session里面。

然后判断一下openby的分组和当前用户的分组是否匹配。匹配就可以关掉了。
回帖
2009-06-15 13:13:59
#3
yoyolora
访问次数 : 15
注册日期 : 09-06-15 10:25
上次访问 : 09-10-29 21:05
谢谢, wwccss
回帖
2009-06-15 14:48:01
#4
yoyolora
访问次数 : 15
注册日期 : 09-06-15 10:25
上次访问 : 09-10-29 21:05
wwccss, 我看了一下session.inc.php 没有没有登记用户组信息,是不是将用户所在的分组信息记录到session.inc.php 里面啊,
openby的分组可以用for loop在找到么?
回帖
2009-06-15 14:52:53
#5
wwccss
访问次数 : 593
注册日期 : 05-05-01 10:08
上次访问 : 10-07-19 11:44
不是放到那个文件里面。你可以在网上查找一下 php 会话管理,或者session管理。

简单来讲,就是登陆的时候,从数据库中取得分组信息,然后将其赋值到$_SESSION数组中。 $_SESSION['group'] = $user['group']; 诸如此类的代码,具体情况需要根据自己的需要修改。
回帖
2009-06-15 15:26:01
#6
yoyolora
访问次数 : 15
注册日期 : 09-06-15 10:25
上次访问 : 09-10-29 21:05
太感谢谢wwccss, 我试试看吧, 唉, 希望能搞定。
回帖
2009-06-22 14:07:09
#7
yoyolora
访问次数 : 15
注册日期 : 09-06-15 10:25
上次访问 : 09-10-29 21:05
wwccss, 我试着改了,但是好像改的不对, 怎么也不工作
我在funcmodel.inc.php 里加了这些
function baseJudgeUserGroup($TestUserName)
{
$GroupID = testGetGroupList("GroupUser LIKE '%,{$TestUserName},%'");
return $GroupID;
}
再在baseJudgeUserLogin里加了
function baseJudgeUserLogin()

$_SESSION['GroupID'] = baseJudgeUserGroup($TestUserName);

我试着将拿到的GroupID在页面显示以此证明拿到了正确的GroupID, 我在TopNav.php和tpl
里加了

$TPL->assign('UserGroupID', $_SESSION['UserGroupID']);
----------------------------------

TopNav.php
{$Lang.Welcome},{$TestRealName},{$UserGroupID},
但是不工作, 不知道拿出了问题啊
回帖
2009-06-22 15:32:58
#8
wwccss
访问次数 : 593
注册日期 : 05-05-01 10:08
上次访问 : 10-07-19 11:44
你要一点一点的调试一下。比如baseJudgeUserGroup这个函数返回的grooupid到底对不对。顺藤摸瓜,问题就能确定。

还有可以注意看一下apache的错误日志。也许能给你一些帮助信息。
回帖
2009-06-26 15:34:18
#9
yoyolora
访问次数 : 15
注册日期 : 09-06-15 10:25
上次访问 : 09-10-29 21:05
wwccss 谢谢你的答复, 我试着直接在login。php 获取GroupID
但是出现了报错:

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

我在funmodel。inc.php也试了, 出现这样的报错
Fatal error: Call to a member function query() on a non-object in D:\xampp\htdocs\bugfree2\Include\FuncModel.inc.php on line 114

--------------------------------------------------------------------------------------------------------------------------------------------------------------------
$QueryGroup = "SELECT GroupID FROM bf_testusergroup WHERE GroupUser LIKE '%,$_SESSION[TestUserName],%' ";
$UserGroup = $MyDB->query($QueryGroup);
$GroupID = $UserGroup->fetchRow();

$_SESSION['GroupID'] = $UserGroupName[GroupID];
--------------------------------------------------------------------------------------------------
这段代码哪里有问题,导致了报错啊
apache的错误日志在哪里看啊, 我用的是xampp
非常抱歉麻烦你了
回帖
2009-06-26 16:31:30
#10
wwccss
访问次数 : 593
注册日期 : 05-05-01 10:08
上次访问 : 10-07-19 11:44
检查一下php.ini文件里面register_globals参数的设置。 错误日志在xampp的安装目录下面的apache下面的log目录下面,找找就能看到了。
回帖
2009-06-26 16:32:04
#11
wwccss
访问次数 : 593
注册日期 : 05-05-01 10:08
上次访问 : 10-07-19 11:44
http://forums.digitalpoint.com/showthread.php?t=427439
回帖