Ejemplo n.º 1
0
        /// <summary>
        /// Extract iteration permissions 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>Security namespace</returns>
        private static List <IterationPermission> ExtractIterationPermissions(ISecurityService server, Project teamProject, TeamFoundationIdentity userIdentity, IIdentityManagementService identityManagementService, List <string> groups)
        {
            var result        = new List <IterationPermission>();
            var lstIterations = Helpers.FlattenTree(teamProject.IterationRootNodes);

            // root Area Node
            var iterationPermissionRoot = new IterationPermission {
                IterationName = teamProject.Name, IterationPermissions = new List <Permission>()
            };

            iterationPermissionRoot.IterationPermissions.AddRange(ExtractGenericSecurityNamespacePermissions(server, PermissionScope.WorkItemIterations, userIdentity, lstIterations.First().ParentNode.Uri.AbsoluteUri, identityManagementService, groups));

            if (iterationPermissionRoot.IterationPermissions.Count > 0)
            {
                result.Add(iterationPermissionRoot);
            }

            Console.WriteLine("== Extract WorkItems Iteration Permissions ==");
            foreach (Node iteration in lstIterations)
            {
                var iterationPermission = new IterationPermission
                {
                    IterationName        = iteration.Path,
                    IterationPermissions = new List <Permission>()
                };
                iterationPermission.IterationPermissions.AddRange(ExtractGenericSecurityNamespacePermissions(server, PermissionScope.WorkItemIterations, userIdentity, iteration.Uri.AbsoluteUri, identityManagementService, groups));

                if (iterationPermission.IterationPermissions.Count > 0)
                {
                    result.Add(iterationPermission);
                }
            }

            return(result);
        }
        /// <summary>
        /// Extract iteration permissions 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>Security namespace</returns>
        private static List<IterationPermission> ExtractIterationPermissions(ISecurityService server, Project teamProject, TeamFoundationIdentity userIdentity, IIdentityManagementService identityManagementService, List<string> groups)
        {
            var result = new List<IterationPermission>();
            var lstIterations = Helpers.FlattenTree(teamProject.IterationRootNodes);

            // root Area Node
            var iterationPermissionRoot = new IterationPermission { IterationName = teamProject.Name, IterationPermissions = new List<Permission>() };
            iterationPermissionRoot.IterationPermissions.AddRange(ExtractGenericSecurityNamespacePermissions(server, PermissionScope.WorkItemIterations, userIdentity, lstIterations.First().ParentNode.Uri.AbsoluteUri, identityManagementService, groups));

            if (iterationPermissionRoot.IterationPermissions.Count > 0)
            {
                result.Add(iterationPermissionRoot);
            }

            Console.WriteLine("== Extract WorkItems Iteration Permissions ==");
            foreach (Node iteration in lstIterations)
            {
                var iterationPermission = new IterationPermission
                {
                    IterationName = iteration.Path,
                    IterationPermissions = new List<Permission>()
                };
                iterationPermission.IterationPermissions.AddRange(ExtractGenericSecurityNamespacePermissions(server, PermissionScope.WorkItemIterations, userIdentity, iteration.Uri.AbsoluteUri, identityManagementService, groups));

                if (iterationPermission.IterationPermissions.Count > 0)
                {
                    result.Add(iterationPermission);
                }
            }

            return result;
        }