Bugzilla限制bug状态

时间:2012-11-01 02:23:58

标签: linux bugzilla

我们需要为bugzilla中的一个部署提供解决方案。

我们的方案示例如下:

组:员工,学生

项目/产品错误:projectA,projectB

我们需要知道有没有办法:

1)限制用户组访问项目。

Example= Students cannot access or view bugs in projectA.

2)限制其他用户组确认或更改错误状态

Example= Students cannot change the bug status of projectB  from  NEW to RESOLVED

3)某些成员组的组只能提交错误但不能关闭文件

Example= StaffA can only file a bug in ProjectA but cannot closed it whereas StaffB can file the bug and also can close the bug

从我的搜索/谷歌,没有可用的文档可以解释bugzilla中的这个功能。但也许我忽略了某种方式。 我们当前的bugzilla是版本 3.2rc1

提前致谢。

1 个答案:

答案 0 :(得分:1)

您并未真正说出您使用的是哪个版本的Bugzilla,因此这些网址适用于最新版本4.2。但是,相同的概念适用于最新版本。例如,我们使用3.6并控制某些用户是否可以按照我在下面描述的相同方式更改某些内容。

1)限制不在群组中的用户看到错误是Bugzilla的群组安全所做的事情:

http://www.bugzilla.org/docs/4.2/en/html/groups.html

在您的案例中,一个问题是群组安全控制正面访问而不是负面访问。也就是说,它允许指定哪些组可以查看产品中的错误而不是不能的组。要让students的成员无法查看projectA中的错误,您需要拥有一个可以访问projectA的群组,并设法让用户免于students那个小组。

或者,您可以将一些自定义代码放入Bugzilla::User::can_see_bugBugzilla::User::visible_bugsBugzilla::Bug::check_is_visible,以更加牢固地控制群组students中的用户永远不会查看projectA

中的错误

2)您可以在允许更改时运用很多粒度:

http://www.bugzilla.org/docs/4.2/en/html/cust-change-permissions.html

我们做这样的事情。除非我们明确允许读写访问,否则我们有一组用户要向其授予只读访问权限。为此,我们根据电子邮件地址为这些用户提供了一个名为allspecialusers的组。我们还有另一个名为approved_specialusers的组,其中一些用户是手动添加的。

因此,在我们的Bugzilla::Bug::check_can_change_field中,我们的代码如下:

if ($user->in_group('specialusers') &&
    !$user->in_group('approved_specialusers')) {
    $$PrivilegesRequired = 3;
    return 0;
}

您可以通过检查错误是否在产品projectB中并且尝试进行更改的用户是否在组students

中来执行您想要的操作
相关问题