2013-02-04 51 views
1

我想通過TFS API設置TFS項目的各種版本控制權限。下面是我使用的設置成功後對於給定的文件夾路徑的讀取和校驗權限代碼:TFS 2012 API - 設置版本控制權限?

 IIdentityManagementService ims = tpc.GetService<IIdentityManagementService>(); 
     TeamFoundationIdentity userIdentity = ims.ReadIdentity(IdentitySearchFactor.AccountName, 
               "Guest", 
               MembershipQuery.None, 
               ReadIdentityOptions.IncludeReadFromSource); 

     ISecurityService ss = tpc.GetService<ISecurityService>(); 
     SecurityNamespace securityNamespace = ss.GetSecurityNamespace(SecurityConstants.RepositorySecurityNamespaceGuid); 

     securityNamespace.SetPermissions(folderPath, userIdentity.Descriptor, RegistryServicePermissions.AllPermissions, 0, true); 

我不明白的是在第三個參數(「允許」參數)使用的值SetPermissions爲了設置各種各樣的東西,如簽入,管理分支等,MSDN文檔各不相同。

public abstract AccessControlEntry SetPermissions(
      string token, 
      IdentityDescriptor descriptor, 
      int allow, 
      int deny, 
      bool merge 
    ) 

爲 「允許」 參數的描述只是說:

allow 
    Type: System.Int32 

任何幫助是極大的讚賞。

回答

1

允許的內容應該是你想允許這個特定身份的確切許可的值,例如。 VersionedItemPermissions.Read

由於它是它被列爲INT32因爲枚舉,以支持各種實體TFS枚舉即建立,版本控制,工作項跟蹤等

+0

您可以將這些枚舉值組合在一起以合併權限。 – jessehouwing

1

可以使用的int參數如下:

int allow = (int)Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.Read; 
    int deny = (int)(Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.AdminProjectRights | 
         Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.Checkin | 
         Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.CheckinOther | 
         Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.PendChange | 
         Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.Label | 
         Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.ReviseOther | 
         Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.LabelOther | 
         Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.Lock | 
         Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.ManageBranch | 
         Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.Merge | 
         Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.UndoOther | 
         Microsoft.TeamFoundation.VersionControl.Common.VersionedItemPermissions.UnlockOther); 
+0

實際列出此枚舉的所有可用值的榮譽。 –