我正在尝试通过TFS API设置TFS项的各种版本控制权限。以下是我正在使用的代码,它成功设置了给定文件夹路径的读取和签出权限:
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的第3个参数(“allow”参数)中使用的值,以便设置各种内容,例如checkin,manage branch等.MSDN文档变化模糊。< / p>
public abstract AccessControlEntry SetPermissions(
string token,
IdentityDescriptor descriptor,
int allow,
int deny,
bool merge
)
“allow”参数的说明只是说:
allow
Type: System.Int32
非常感谢任何帮助。
答案 0 :(得分:1)
allow的内容应该是您要对此特定身份允许的确切权限的值,例如。 VersionedItemPermissions.Read
因为它是枚举,所以它被列为int32,因为枚举支持TFS中的各种实体,即构建,版本控制,工作项跟踪等。
答案 1 :(得分: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);