/// <summary> /// Extracts area permission for a specific identity /// </summary> /// <param name="server">Server security service</param> /// <param name="teamProject">Team project</param> /// <param name="userIdentity">User identity</param> /// <param name="identityManagementService">The identityManagementService</param> /// <param name="groups">List of groups</param> /// <returns>The list of the permissions</returns> private static List <AreaPermission> ExtractAreasPermissions(ISecurityService server, Project teamProject, TeamFoundationIdentity userIdentity, IIdentityManagementService identityManagementService, List <string> groups) { var result = new List <AreaPermission>(); Console.WriteLine("== Extract WorkItems Area Permissions =="); // root Area Node var areaPermissionRoot = new AreaPermission { AreaName = teamProject.Name, AreaPermissions = new List <Permission>() }; areaPermissionRoot.AreaPermissions.AddRange(ExtractGenericSecurityNamespacePermissions(server, PermissionScope.WorkItemAreas, userIdentity, teamProject.AreaRootNodeUri.AbsoluteUri, identityManagementService, groups)); if (areaPermissionRoot.AreaPermissions.Count > 0) { result.Add(areaPermissionRoot); } IEnumerable <Node> areaList = Helpers.FlattenTree(teamProject.AreaRootNodes); foreach (Node area in areaList) { var areaPermission = new AreaPermission { AreaName = area.Path, AreaPermissions = new List <Permission>() }; areaPermission.AreaPermissions.AddRange(ExtractGenericSecurityNamespacePermissions(server, PermissionScope.WorkItemAreas, userIdentity, area.Uri.AbsoluteUri, identityManagementService, groups)); if (areaPermission.AreaPermissions.Count > 0) { Console.WriteLine(" -- Adding Permissions for {0}", area.Path); result.Add(areaPermission); } } return(result); }
/// <summary> /// Extracts area permission for a specific identity /// </summary> /// <param name="server">Server security service</param> /// <param name="teamProject">Team project</param> /// <param name="userIdentity">User identity</param> /// <param name="identityManagementService">The identityManagementService</param> /// <param name="groups">List of groups</param> /// <returns>The list of the permissions</returns> private static List<AreaPermission> ExtractAreasPermissions(ISecurityService server, Project teamProject, TeamFoundationIdentity userIdentity, IIdentityManagementService identityManagementService, List<string> groups) { var result = new List<AreaPermission>(); Console.WriteLine("== Extract WorkItems Area Permissions =="); // root Area Node var areaPermissionRoot = new AreaPermission { AreaName = teamProject.Name, AreaPermissions = new List<Permission>() }; areaPermissionRoot.AreaPermissions.AddRange(ExtractGenericSecurityNamespacePermissions(server, PermissionScope.WorkItemAreas, userIdentity, teamProject.AreaRootNodeUri.AbsoluteUri, identityManagementService, groups)); if (areaPermissionRoot.AreaPermissions.Count > 0) { result.Add(areaPermissionRoot); } IEnumerable<Node> areaList = Helpers.FlattenTree(teamProject.AreaRootNodes); foreach (Node area in areaList) { var areaPermission = new AreaPermission { AreaName = area.Path, AreaPermissions = new List<Permission>() }; areaPermission.AreaPermissions.AddRange(ExtractGenericSecurityNamespacePermissions(server, PermissionScope.WorkItemAreas, userIdentity, area.Uri.AbsoluteUri, identityManagementService, groups)); if (areaPermission.AreaPermissions.Count > 0) { Console.WriteLine(" -- Adding Permissions for {0}", area.Path); result.Add(areaPermission); } } return result; }