>我有以下用户组
- 建设者
- 用户1
- 用户2
- 贡献
- 用户 1(请注意,这也是构建器的成员)
- 用户 2(请注意,这也是构建器的成员)
- 用户3
- 用户4
- 用户5
并遵循构建定义(开发构建定义的数量是生产构建定义的许多倍)
- 开发构建
- 构建定义 01
- 构建定义 02
- 构建定义 03
- 构建定义 04
- 构建定义 05
- 生产构建
- 构建定义 51
- 构建定义 52
由于开发构建定义的数量是生产构建定义的很多倍,因此"所有构建定义"级别的默认设置是允许访问参与者和构建者。我想拒绝参与者访问 Prod 构建定义。但是,如果我明确拒绝,则作为两个组成员的用户 1 和用户 2 将"拒绝"该访问权限。我可以使用的唯一其他选项是"继承的允许"和"允许"。还能如何实现?我想以这种方式保留默认值,以便除非没有其他方法,否则需要覆盖的构建定义数量更少。
这是一个典型的权限
- 所有生成定义
- 查看生成定义(为示例选取的权限之一)
- 构建器 - 允许
- 参与者 - 允许
- 产品构建定义之一
- 查看生成定义(为示例选取了权限之一)
- 构建者 - 继承的允许(选项为允许、拒绝、未设置)
- 参与者 - 继承的允许(选项为"允许"、"拒绝"、"未设置")
这是发生的事情
- 参与者继承的允许 - 所有用户都有访问权限 在
- 参与者处拒绝 - 无论构建者组的任何权限如何,用户 1 和用户 2 都将失去其访问权限
这是预期的行为。根据 TFS 权限设置,大多数组和几乎所有权限,">拒绝"胜过"允许"。如果用户属于两个组,并且其中一个组的特定权限设置为"拒绝",则该用户将无法执行需要该权限的任务,即使他们属于该权限设置为"允许"的组也是如此。
有关详细信息,您可以查看MSDN:关于权限和组中的教程
要实现您想要的,您可以创建一个新组,例如DenyProGroup。 将"参与者"中除 user1/user2 之外的其他开发人员添加到此组。例如您情况下的用户 3/用户 4/用户 5。
对于此组,请将所有生产生成定义的"查看生成定义"权限设置为"拒绝"。对于参与者和构建者,将相同的权限设置为"允许"。保存的更改。然后,user3/4/5 将失去查看产品构建的能力,但用户 1/2 仍然具有。