使用TFS API修改版本控制中的文件/项目的权限

时间:2011-06-14 18:23:26

标签: version-control tfs tfs-sdk

使用TFS API,我需要更改版本控制中指定文件/项的权限。我需要编辑特定用户或所有用户的权限。

例如,我的应用程序将阻止为所有用户签入指定文件。然后,它将允许为特定用户签入该文件,执行文件签入,然后允许所有用户再次签入。

我该怎么做?请提供示例代码。


1 个答案:

答案 0 :(得分:2)

在微软的Vicky Song的指导下(http://social.msdn.microsoft.com/Forums/en-US/tfsversioncontrol/thread/289fb1f4-4052-41f1-b2bf-f97cd6d9e389/),这是我结束的起来:

public void SetCheckInLockForFile(string fileAndPath, string userGroup, bool checkInLock)
{
  // sets of the CheckIn permission for the specified file

  List<SecurityChange> changes = new List<SecurityChange>();
  string[] perm = new string[] { PermissionChange.ItemPermissionCheckin };

  if (checkInLock)
    changes.Add(new PermissionChange(fileAndPath, userGroup, null, perm, null));
  else
    changes.Add(new PermissionChange(fileAndPath, userGroup, null, null, perm));

  SecurityChange[] actualChanges = versionControlServer.SetPermissions(changes.ToArray());

}

当CheckInLock为true时,会添加拒绝权限以进行签入。当CheckInLock为false时,将删除签入权限,允许继承指定文件的签入权限。