0

我们需要一个解决方案来解决我们在 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) 某些组的成员集只能提交bug,不能关闭文件

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版本

提前致谢。

4

1 回答 1

1

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

1) 限制不在组内的用户查看 bug 是 Bugzilla 的组安全所做的:

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

您的案例中的一个问题是组安全控制积极访问而不是消极访问。也就是说,它允许指定哪些组可以查看产品中的错误,而不是不能查看的组。为了防止 的成员students查看 中的错误projectA,您需要有一个可以访问的组,projectA并设计一种方法将用户students排除在该组之外。

或者,您可以将一些自定义代码放入Bugzilla::User::can_see_bug, Bugzilla::User::visible_bugs,或Bugzilla::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

于 2012-11-01T18:10:15.280 回答