Bugfree 添加权限管理

公司在用Bugfree,一是免费,二是开源,之前也试过CQ之类的工具,实际使用还是Bugfree简单实用,但它也存在明显的缺陷,如没有任何的权限管理.项目管理员把某Bug指派给某工程师,但此工程师仍有再次指派的权限,某些不自觉的就会私自再次指派,非常不利于Bug及其进度管理.

通过修改Bug.php添加指派给的权限控制,即仅有Bugfree管理员及项目管理员才有权限修改指派给(测试人员新建Bug的时候可以选择).

流程比较清晰,修改如下,标红色的部分为改动,主要是两处对管理员的判断,$_SESSION[‘TestIsProjectAdmin’],$_SESSION[‘TestIsAdmin’].

……
elseif($ActionType == ‘Edited’)
{
     $ActionTypeName = $_LANG[‘EditBug’];
    if($_SESSION[‘TestIsProjectAdmin’]||$_SESSION[‘TestIsAdmin’])
   {
    $SelectAssignUserList = htmlSelect($ProjectUserList, ‘AssignedTo’, ”,$BugInfo[‘AssignedTo’], ‘    class=”NormalSelect MyInput RequiredField”‘);
    }
   else
   {
            $TempProjectUserList = array($BugInfo[‘AssignedTo’]=>$ProjectUserList[$BugInfo[‘AssignedTo’]]);
            $SelectAssignUserList = htmlSelect($TempProjectUserList, ‘AssignedTo’, ”,$BugInfo[‘AssignedTo’], ‘class=”NormalSelect MyInput ReadOnlyField”‘);
   }
}
……
elseif($ActionType == ‘Resolved’)
{
   $ActionTypeName = $_LANG[‘ResolveBug’];
   if($_SESSION[‘TestIsProjectAdmin’]||$_SESSION[‘TestIsAdmin’])
{
   $SelectAssignUserList = htmlSelect($ProjectUserList, ‘AssignedTo’, ”,$BugInfo[‘OpenedBy’], ‘class=”NormalSelect MyInput RequiredField”‘);
}
else
{
            $TempProjectUserList = array($BugInfo[‘OpenedBy’]=>$ProjectUserList[$BugInfo[‘OpenedBy’]]);
            $SelectAssignUserList = htmlSelect($TempProjectUserList, ‘AssignedTo’, ”,$BugInfo[‘OpenedBy’], ‘class=”NormalSelect MyInput ReadOnlyField”‘);
}
}
……

本来计划是把此字段直接附值$SelectAssignUserList=$ProjectUserList[$BugInfo[‘OpenedBy’]];但在保存的时候,修改指派给下面的字段如优先级,会导致AssignedTo内容丢失,没有找到根本原因,怀疑是对<select></select>有强制要求.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.