BugFree 的一个 bug 修正
这两天配置 BugFree v1.12 的过程中发现了一个 bug,在后台管理中,添加项目后,页面左侧的项目列表中并不会出现新加的项目。必须全部关闭当前的窗口,然后重新登录后才有。查看代码后发现问题在于 BugFree 在 session 中缓存了当前的 user 的 ACL. 添加新项目后这个信息在 Session 中并不会刷新。简单起见,我做了如下修改:
在 /Include/FunctionsMain.inc.php 中,找到:
function bugGetUserACL($BugUserName)
{
global $MyDB;
global $BugConfig;
global $MyJS;
/* Register Session already. */
if(!empty($_SESSION["BugUserACL"]))
{
return true;
}
// more code
}
{
global $MyDB;
global $BugConfig;
global $MyJS;
/* Register Session already. */
if(!empty($_SESSION["BugUserACL"]))
{
return true;
}
// more code
}
注释掉 "return true;" 这一行即可做到每次从数据库里读取信息,从而保证实时性。这样做可能存在的缺陷是丧失了用 session 做一些缓存的优势,不过我考虑对 mysql 的整个访问次数也不会因为这个增加多少,管不了那么多了,解决问题才是最重要的。