项目

一般

简介

方案 #5 如何实现"查看问题"权限的深度控制

redmineplugins.cn Admin6 个月 之前添加

如何实现“查看问题”权限的深度控制

“问题可见度“是Redmine控制“问题"是否可读的默认方式。当用户以某种角色分配到项目时,Redmine将通过该角色的“角色和权限“确定其查看问题的能力。具体方法是使用Redmine管理员登录,进入管理页面,通过“角色和权限“模块分别对所有角色设定不同的查看问题权限和问题可见度。下表是以“报告人员”为例的相关配置:

角色\角色和权限 问题可见度 查看问题权限
报告人员

其中“问题可见度"包含3种选项:

  • 全部问题 : 绑定该角色的用户可以查看所属项目的全部问题
  • 全部非私有问题: 绑定该角色用户可以查看所属项目的全部非私有的问题
  • 自身创建的或者被指派的问题: 仅能查看自己创建的或被指派的问题

默认情况下只要具有“查看问题”权限的用户都可以查看“全部问题“。如果管理员要收紧不同角色对问题的访问范围,就需要利用“问题可见度“的“全部非私有问题“或“自身创建的或者被指派的问题”两个选项加以限定,以区分不用角色用户对问题列表的访问能力。

使用插件扩展Redmine的“角色和权限”选项

目前Redmine默认的“问题可见度“3个选项存在一定的局限性,例如“自身创建的或者被指派的问题"并不能满足issue变更指派人的情况,如果issue经过多次指派,曾经的指派人将无法再查看问题。这种情况下,可以通过redmine_issues_visibility插件为Redmine的“问题可见度”扩展更多可用选项(监控、参与更新或贡献),以符合特定的应用场景需求,具体实现方法可参考本站典型案例 #212 。

利用“自定义属性“深度控制用户“查看问题”的能力

除了上述“角色和权限“方式外,还可以利用问题的“自定义属性”结合redmine_issues_visibility_by_custom_fields实现更为灵活的控制。“自定义属性”作为Redmine的关键功能,也是Redmine灵活性的主要体现。用户可以通过为Redmine各模块增加各种“自定义属性”使Redmine更加贴合实际业务场景。相对于字符串型类型,问题的"列表/List”型自定义属性可能是使用最多字段类型了,它不仅可以实现快速录入,还可以约束用户的录入内容,将录入内容限定在管理员设定的可选值范围内。此时,就可以使用插件结合自定义属性的列表值,实现动态控制问题的可见性了。以下是利用“问题来源”字段的举例说明:

  • 管理员用户进入“自定义属性“配置界面,选择编辑“问题“的“问题来源”自定义属性

  • 如图,当前字段新增了两个额外的控制选项,“字段值是否关联角色“和“字段值是否关联用户”,可以分别基于每个选项关联自定义属性的取值控制用户对问题的查看权利。。

  • 基于“用户“或“组”关联字段值的访问控制
    下图是基于“用户或组“关联属性值的访问控制策略,第一条策略表述的是当问题的“问题来源“取值为“一般“或“研发“时,“测试用户“可以看到当前问题;第二条策略表述的是取值为“售后“或“外包“时,“测试用户”用户可以看到当前问题。

  • 基于“角色”关联字段值的访问控制
    下图是基于“角色“关联属性值的访问控制策略,图中策略表示自定义属性取任何值均有权查看当前问题。“开发人员“仅能查看取值为“一般“和“研发”的问题; “报告人员“仅能查看取值为“交付“和“外包”的问题。


评论

xy wang5 个月 之前添加

安装redmine_issues_visibility插件后 在自定义界面没有字段值关联角色或用户

redmineplugins.cn Admin5 个月 之前添加

@xy wang 需要安装redmine_issues_visibility_by_custom_fields插件

my sky5 个月 之前添加

使用的人真变态,太细致,也太强大了

redmineplugins.cn Admin5 个月 之前添加

@my sky 该方案源自实际应用案例。适用于不但项目任务分解较多,而且参与的人员和角色也较多的业务场景。要求按人员、组或角色过滤或隔离出与自己相关的任务,其它无关任务则不可见,使项目团队各任务负责人目标清晰、更加关注自己的工作范围和工作分解。此外,某些任务因特殊性仅允许特定的'干系人'对任务可见,也需要通过该功能限制和圈定'干系人'范围。

添加评论