TFS 使用具有多个组成员身份的用户生成定义权限和组继承



>我有以下用户组

  • 建设者
    • 用户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 仍然具有。

最新更新