Results tagged “Bugzilla”

Bugzilla中针对不同产品的权限设定

Bugzilla是一个经典的软件缺陷追踪工具,最初版本由Netscape开发,1998年遵循Mozilla Public License协议公开源代码。Bugzilla作为功能强大的Bug Tracking系统,在无数的商业/非商业组织和项目中得到广泛的应用。

Bugzilla 系统中默认的设计是可将所有的信息对任何人开放,但是针对用户应用需求的不同,可以针对不同产品设置不同的权限设定。可以适用于如:在一个大公司的多个软 件项目组,通过一个全公司的Bugzilla系统来追踪各个项目的Bug,各个组之间的人员并不能查看或编辑其它组的内容等类似情况。

事实上Bugzilla 网站上的手册里针对此部分有很详细的说明,但是我在使用中发现,互联网上还没有对此进行介绍的较为详细的文章,同时如果没有通过实际的例子来将设置方法加 以展示的话,整个设置和对照英文文档的过程还是让人感觉晦涩及难以理解。所以本篇文章将以Bugzilla系统应用中的实例来讲解下如何对不同产品的权限 进行设定。

(本篇文章的内容在Bugzilla 3.2,3.2.3中测试完成,Bugzilla后续版本可能会对此部分功能进行变更,请在使用及部署中注意)

本文目的与要求:

通过实例讲述在Bugzilla系统中如何针对用户应用需求的不同,针对不同产品设置不同的权限。

您需要对Bugzilla有简单的了解和部署经验,并且已经在开始使用Bugzilla。本文中不会针对个别选项、设置进行事无巨细的探讨,也不保证所讲述 的内容涉及到权限设置部分的各个方面。仅以一些实例,为各位Bugzilla用户在各自的应用中起到一些抛砖引玉的作用。

设置不同组权限设置的前提要求:

    首先需要完成Bugzilla里的分组设置。如可根据用户的不同分为"质量"、"前端"、"测试"等不同的用户组。用户可以同属为多个组。组的分类可以和 要提交问题的产品相关,如针对"质量"的问题,会有一个对应的"质量"人员组;也可以和问题不相关,如通常为了管理方便,我会创建一个"部门主管"组(可 查看所有记录)、以及"所有用户"组(通过通配符 .* 匹配所有用户,在使用中可简化一些设置)。以下的几个实例的解决方法,会遵循我在这里的用户组设计。

    如需设置组分类和产品分类相对应,可启用Bugzilla->管理->参数设置->组安全设置 中的makeproductgroups选项。启用此选项后,每创建一个新产品,系统均会自动在用户组中创建一个与此产品对应的用户组。

产品分组权限设置页面:

    无特殊说明,均在Bugzilla->管理->产品管理->产品页面->编辑组访问控制页面中

权限设计需求实例:

  1. 每个用户都可以提交不同产品的Bug
  2. 所有用户均可编辑问题/只有相应组的用户才能编辑相应的问题
  3. 所有用户在提交问题时,均可选择此问题是否针对其它各个部门的人员可见
  4. 产品严格分组,不同的产品组只能查看相应组的产品Bug信息 - 此范例来自 Bugzilla官方手册
  5. 创建一个只读产品(此产品的相关信息只能查看,不能提交和修改)- 此范例来自 Bugzilla官方手册

问题1解决:

    选中"所有用户"组的Entry选项

问题1解决说明:
    
    Entry 选项决定了一个组的用户是否有权限可以针对一个产品提交问题。同时如果有至少一个组选择了Entry这个选项的话,那么其它没有选择的组均无法针对此产品提出问题


问题2解决:

    所有用户均可编辑问题:选中"所有用户"组的editbugs选项
    只有相应组的用户才能编辑相应的问题:依次编辑各个产品,选中相应组的Editbug选项

      
问题2解决说明:

    Editbug 以及 editbugs 两个选项的差别:

  • 当有任何一个组选择了Editbug选项后,其它未选择的组均无法编辑此产品
  • 如果有一个组选择了editbugs以后,该组即可编辑此产品的所有问题


问题3解决

    修改相应其他组的MemberControl、OtherControl权限

    这两个权限各有三个选项

    简单说明,
    一个组的MemberControl指操作中用户属于这个组时,
        Default指可以在界面上选择此组用户是否可查看此产品问题,并且默认此选项选中
        Mandatory指在界面上无法选择此组用户是否可查看此产品问题,但此问题设置为强制与此组用户相关
        Show指可以在界面上选择此组用户是否可查看此产品问题,并且默认此选项不选中
        N/A指与此组完全没有关系,无法访问

    一个组的MemberControl指操作中的用户不属于这个组时的情况,三个选项和上面的相同。


    举个例子

        倘若有一个"主管"用户组,可查看/编辑所有提交的信息(并且此设置不可能由其它用户或相关的Bug提交者所改变),权限可设置为

            主管 Mandatogy Mandatory editbugs

        倘若有一个问题,可能需要"质量"、"前端"组用户查看,但需要提交此问题的用户(所有用户,可以不是这两个组的成员)在提交时进行设置。同时还不需要让"程序"组的用户查看,那么权限可设置为

            质量 Shown Shown
            前端 Shown Shown
            程序 N/A N/A
            所有用户 Entry (或设置为 除"程序"组以外的其他组均可以Entry)

     针对问题三的情况,应该设置成为:

        对其他可能会与此问题相关的用户组,权限设置成为 Shown Shown
        这样在提交问题时,选项里就会出现"是否让一下组查看问题"的选项了。


问题4解决:(此问题可视作问题3里设置权限的例子的一个延续)

产品A里面采用如下设定:
A组: ENTRY, MANDATORY/MANDATORY
产品B:
B组: ENTRY, MANDATORY/MANDATORY
   

问题5解决:(此问题可视作问题3里设置权限的例子的一个延续)

        创建一个用户组,名为"只读"。将需要设置权限的产品设置为
        只读 Entry, N/A N/A, CanEdit

        简单说明
                Entry及CanEdit均为排他设置,只要确保"只读"组没有用户,即可实现无用户可提交和编辑此产品的Bug信息。


Mozilla官方手册中还有不少权限设置的实例,相信在读完以上部分以后,理解Mozilla的说明会更加方便一些。

本文的大多数内容均经过我的实验,但是仅供参考之用,我不能确定文章中的所有设置均正确并适应您的需求,总的来说,Bugzilla的设置,还需要在实践中加以揣摩。

在日后时间宽裕时可能会对此文章进行进一步补充。如对此文章由什么意见或纠正,欢迎留言或直接给我写信,我的邮箱是 我的英文ID@gmail.com

最后需要明确的是"产品"这个概念。我在工作中搭建的Bugzilla系统均不是应用于软件开发领域,而是对流程中的问题进行追踪。"产品"这个在 Bugzilla中的概念,可能在Bugzilla系统根据用户需求进行定制的过程中被其它文字替换。关于针对Bugzilla系统进行定制的更多信息, 欢迎查看这篇文章:OpenParty "有狐",在此次活动中,我进行了一个"Bugzilla系统部署、定制"的演讲,具体的介绍幻灯片可以查看这里《Bugzilla @ Customization》

作者:CNBornbugzilla-cn (Bugzilla中文本地化)项目组成员


主要参考文档

本文中Bugzilla的中文翻译均来自 bugzilla-cn (Bugzilla中文本地化项目)

Bugzilla官方文档中对于产品组权限部分的说明(Bugzilla 3.2) http://www.bugzilla.org/docs/3.2/en/html/products.html#product-group-controls

Bugzilla权限管理讨论,这个是我在中文互联网上发现的少见的关于此问题的帖子,只有2句话,总结得不错 http://topic.csdn.net/t/20061226/23/5258177.html

OpenParty "有狐"

本次的OpenParty "有狐"活动是以Mozilla的内容为核心,同时继续保持OpenParty传统的话题分享方式。这是我第二次参与OpenParty的活动,也是我第一次在这里进行话题分享。

来自雅虎中国的一位朋友在这次的OpenParty上展示了一个让我十分震撼的应用案例:将Firefox这款大家几乎每天都在使用的客户端软件,运用在 生产环境中的服务器上面变成集群,以实现大规模搜索引擎对于抓取后数据的分析。完全应用Firefox对于抓取到的Web界面进行解析(事实上可以说是利 用了Gecko),同时在这个过程中,应用不少统计学、以及数学的相关概念,来实现对Web页面的认知工作。

难能可贵的是对于并不怎么深入了解搜索引擎相关技术的我来说,这个实现过程其实很好理解。但是在理解这个过程的同时,我不禁发出赞叹。很多我们平时没能注 意的问题,使用数学进行总结,实际上非常清晰直观:如,Web页面中划分区域,其中宽度大于高度,并且高出很多倍的区域,必然是导航条一类的部分,而不可 能是正文。然后利用一些统计学的原理去总结,就可以得到我们想要的数据。而且整套工具所使用的软件,如Firefox,以及特别为搜索引擎抓取任务所定制 的Firefox Extensions, 在这里的应用堪称巧妙。这种将同一软件应用到不同领域的方式,可以很好地激励大家发散思维。

技术方面我就不太多叙述了,难免班门弄斧。大家可到 http://agentzh.org/ ,分享话题的这位朋友的Blog来查看整个详情。另外他的Blog完全是用Javascript生成的。

----

我带到OpenParty上面进行分享的话题,是对于Bugzilla,这个缺陷追踪系统的定制化上自己进行的一些研究。事实上,自己由于工作的需要,从 去年12月开始接触Bugzilla这个开源项目,其间对于这个软件的部署、修改、本地化应用有了不少的体会。正好借这个机会进行一番总结。

整个演示通过展示一个对于Bugzilla系统的,超过它原有适用的领域及应用形式的定制化修改。以此来向大家展示这个系统在定制化方面的潜力, 并希望籍此给更多的希望在更多领域应用开源软件的朋友以启迪,从而对于帮助大家将已有的开源软件产品通过一定的定制化,快速融入所需的应用环境中。事实上 我要描述的,也是将一个在已知领域的软件,放入其它应用领域里的例子,只是没有Firefox集群那位朋友的技术那般高深。

我对总体的结果十分高兴和欣慰的,因为这个并不是特别技术的展示可能对于专业的技术人员来说并不是特别吸引人。但还是有不少朋友很捧场,完成了一次很好的 交流。感谢那些的朋友,更希望我的这点分享能够对你们有所启发。总的来说不妄我费了很多时间来准备这个Slides了。

演示Slides请查看:http://docs.google.com/Presentation?id=ajgc2xkd4rgc_24fthmz2cn

----

下次或再下一次的OpenParty上面,我会针对Google App Engine开发、以及自己的CheckNerds项 目来进行一个专题。我会重点讲述Google App Engine 比较高级方面的内容。在对于GAE简单的概述同时,我会讲一下框架的选择、如何打破GAE的限制,以及什么样的应用目前在GAE上面无法实现。同时对于 CheckNerds这个网站的架构做出一些讲解,相信这其中架构这方面的知识也会帮助到很多对于Web2.0网站架构感兴趣的朋友

今年,我预计会在信息分享上花费相当的时间。接下来的时间里,我还会陆续对于我较有经验的几个领域进行一些技术分享,如Google App Engine等,欢迎大家关注。通常我的演讲会在OpenParty 上进行,也欢迎大家到场来一起交流。
1