我们有本地Team Foundation Server(v14.114.26403.0)。我正在尝试锁定我们的dev + master分支,以鼓励开发人员创建功能分支并向开发人员提出请求。为此,我将开发分支上除Project和Build Administrators组之外的所有访问组的Contribute权限设置为“ Deny”。
不幸的是,一旦我执行了此操作,管理员组成员就无法完成拉取请求,即使他们明确具有“允许”权限,他们似乎也没有权限。
他们收到以下错误:
TF401027:您的帐户缺少权限 您正在尝试的操作所需的。你需要 'GenericContribute'。请与您的管理员联系。
在我恢复对其他组的贡献权限之前,我也会遇到此错误。
有人知道为什么会这样吗?还是怎么解决?我能想到的是,管理员组中的用户也位于贡献者中,所以也许从其成员身份到贡献者组的“拒绝”会覆盖他们从管理员那里获得的“允许”?
答案 0 :(得分:2)
显式“拒绝”权限比显式“允许”权限具有更高的优先级。通常,请勿使用显式拒绝。如果不允许 许可(即“未设置”),则将被隐式拒绝。
但是,安全设置对于您所描述的方案是不好的解决方案。您应该使用branch policies来执行拉取请求。有了分支策略后,受保护的分支只能通过拉取请求进行更新,除非用户被授予允许他们忽略分支策略的权限。