Exemple #1
0
        /// <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;
        }