コード例 #1
0
        public virtual ActionResult Packages()
        {
            var currentUser = GetCurrentUser();

            var owners = new List <ListPackageOwnerViewModel> {
                new ListPackageOwnerViewModel
                {
                    Username = "******"
                },
                new ListPackageOwnerViewModel(currentUser)
            }.Concat(currentUser.Organizations.Select(o => new ListPackageOwnerViewModel(o.Organization)));

            var wasMultiFactorAuthenticated = User.WasMultiFactorAuthenticated();

            var packages       = PackageService.FindPackagesByAnyMatchingOwner(currentUser, includeUnlisted: true);
            var listedPackages = packages
                                 .Where(p => p.Listed)
                                 .Select(p => new ListPackageItemRequiredSignerViewModel(p, currentUser, SecurityPolicyService, wasMultiFactorAuthenticated))
                                 .OrderBy(p => p.Id)
                                 .ToList();
            var unlistedPackages = packages
                                   .Where(p => !p.Listed)
                                   .Select(p => new ListPackageItemRequiredSignerViewModel(p, currentUser, SecurityPolicyService, wasMultiFactorAuthenticated))
                                   .OrderBy(p => p.Id)
                                   .ToList();

            // find all received ownership requests
            var userReceived = _packageOwnerRequestService.GetPackageOwnershipRequests(newOwner: currentUser);
            var orgReceived  = currentUser.Organizations
                               .Where(m => ActionsRequiringPermissions.HandlePackageOwnershipRequest.CheckPermissions(currentUser, m.Organization) == PermissionsCheckResult.Allowed)
                               .SelectMany(m => _packageOwnerRequestService.GetPackageOwnershipRequests(newOwner: m.Organization));
            var received = userReceived.Union(orgReceived);

            // find all sent ownership requests
            var userSent = _packageOwnerRequestService.GetPackageOwnershipRequests(requestingOwner: currentUser);
            var orgSent  = currentUser.Organizations
                           .Where(m => ActionsRequiringPermissions.HandlePackageOwnershipRequest.CheckPermissions(currentUser, m.Organization) == PermissionsCheckResult.Allowed)
                           .SelectMany(m => _packageOwnerRequestService.GetPackageOwnershipRequests(requestingOwner: m.Organization));
            var sent = userSent.Union(orgSent);

            var ownerRequests = new OwnerRequestsViewModel(received, sent, currentUser, PackageService);

            var userReservedNamespaces          = currentUser.ReservedNamespaces;
            var organizationsReservedNamespaces = currentUser.Organizations.SelectMany(m => m.Organization.ReservedNamespaces);

            var reservedPrefixes = new ReservedNamespaceListViewModel(userReservedNamespaces.Union(organizationsReservedNamespaces).ToArray());

            var model = new ManagePackagesViewModel
            {
                User                        = currentUser,
                Owners                      = owners,
                ListedPackages              = listedPackages,
                UnlistedPackages            = unlistedPackages,
                OwnerRequests               = ownerRequests,
                ReservedNamespaces          = reservedPrefixes,
                WasMultiFactorAuthenticated = User.WasMultiFactorAuthenticated()
            };

            return(View(model));
        }
コード例 #2
0
        public virtual ActionResult Packages()
        {
            var user     = GetCurrentUser();
            var packages = _packageService.FindPackagesByOwner(user, includeUnlisted: true)
                           .Select(p => new ListPackageItemViewModel(p)).OrderBy(p => p.Id).ToList();

            var model = new ManagePackagesViewModel
            {
                Packages = packages
            };

            return(View(model));
        }
コード例 #3
0
        public virtual ActionResult Packages()
        {
            var user = GetCurrentUser();

            var owners = new List <ListPackageOwnerViewModel> {
                new ListPackageOwnerViewModel
                {
                    Username = "******"
                },
                new ListPackageOwnerViewModel(user)
                {
                    CanManagePackageOwners = PermissionsService.IsActionAllowed(
                        account: user,
                        currentUser: user,
                        action: PackageActions.ManagePackageOwners)
                }
            }.Concat(user.Organizations.Select(o => new ListPackageOwnerViewModel(o.Organization)
            {
                CanManagePackageOwners = PermissionsService.IsActionAllowed(
                    account: o.Organization,
                    currentUser: user,
                    action: PackageActions.ManagePackageOwners)
            }));

            var packages       = _packageService.FindPackagesByAnyMatchingOwner(user, includeUnlisted: true);
            var listedPackages = packages
                                 .Where(p => p.Listed)
                                 .Select(p => new ListPackageItemViewModel(p)).OrderBy(p => p.Id)
                                 .ToList();
            var unlistedPackages = packages
                                   .Where(p => !p.Listed)
                                   .Select(p => new ListPackageItemViewModel(p)).OrderBy(p => p.Id)
                                   .ToList();

            var incoming = _packageOwnerRequestService.GetPackageOwnershipRequests(newOwner: user);
            var outgoing = _packageOwnerRequestService.GetPackageOwnershipRequests(requestingOwner: user);

            var ownerRequests    = new OwnerRequestsViewModel(incoming, outgoing, user, _packageService);
            var reservedPrefixes = new ReservedNamespaceListViewModel(user.ReservedNamespaces);

            var model = new ManagePackagesViewModel
            {
                Owners             = owners,
                ListedPackages     = listedPackages,
                UnlistedPackages   = unlistedPackages,
                OwnerRequests      = ownerRequests,
                ReservedNamespaces = reservedPrefixes
            };

            return(View(model));
        }
コード例 #4
0
        public virtual ActionResult Packages()
        {
            var user     = GetCurrentUser();
            var packages = PackageService.FindPackagesByOwner(user, includeUnlisted: true)
                           .Select(p => new PackageViewModel(p)
            {
                DownloadCount = p.PackageRegistration.DownloadCount,
                Version       = null
            }).ToList();

            var model = new ManagePackagesViewModel
            {
                Packages = packages
            };

            return(View(model));
        }
コード例 #5
0
        public virtual ActionResult Packages()
        {
            var user     = UserService.FindByUsername(CurrentUser.Identity.Name);
            var packages = PackageService.FindPackagesByOwner(user);

            var model = new ManagePackagesViewModel
            {
                Packages = from p in packages
                           select new PackageViewModel(p)
                {
                    DownloadCount = p.PackageRegistration.DownloadCount,
                    Version       = null
                },
            };

            return(View(model));
        }
コード例 #6
0
        public virtual ActionResult Packages()
        {
            var user     = userService.FindByUsername(currentUser.Identity.Name);
            var packages = packageService.FindPackagesByOwner(user);

            var published = from p in packages group p by p.PackageRegistration.Id;

            var model = new ManagePackagesViewModel
            {
                Packages = from pr in published
                           select new PackageViewModel(pr.First())
                {
                    DownloadCount = pr.Sum(p => p.DownloadCount),
                    Version       = pr.Max(p => p.Version),
                },
            };

            return(View("~/Views/Users/Packages.cshtml", model));
        }
コード例 #7
0
        public virtual ActionResult Packages()
        {
            var user     = GetCurrentUser();
            var packages = _packageService.FindPackagesByOwner(user, includeUnlisted: true)
                           .Select(p => new ListPackageItemViewModel(p)).OrderBy(p => p.Id).ToList();

            var incoming = _packageOwnerRequestService.GetPackageOwnershipRequests(newOwner: user);
            var outgoing = _packageOwnerRequestService.GetPackageOwnershipRequests(requestingOwner: user);

            var ownerRequests = new OwnerRequestsViewModel(incoming, outgoing, user, _packageService);

            var model = new ManagePackagesViewModel
            {
                Packages      = packages,
                OwnerRequests = ownerRequests
            };

            return(View(model));
        }
コード例 #8
0
        public virtual ActionResult Packages()
        {
            var currentUser = GetCurrentUser();

            var owners = new List <ListPackageOwnerViewModel> {
                new ListPackageOwnerViewModel
                {
                    Username = "******"
                },
                new ListPackageOwnerViewModel(currentUser)
            }.Concat(currentUser.Organizations.Select(o => new ListPackageOwnerViewModel(o.Organization)));

            var packages       = _packageService.FindPackagesByAnyMatchingOwner(currentUser, includeUnlisted: true);
            var listedPackages = packages
                                 .Where(p => p.Listed)
                                 .Select(p => new ListPackageItemViewModel(p, currentUser)).OrderBy(p => p.Id)
                                 .ToList();
            var unlistedPackages = packages
                                   .Where(p => !p.Listed)
                                   .Select(p => new ListPackageItemViewModel(p, currentUser)).OrderBy(p => p.Id)
                                   .ToList();

            var received = _packageOwnerRequestService.GetPackageOwnershipRequests(newOwner: currentUser);
            var sent     = _packageOwnerRequestService.GetPackageOwnershipRequests(requestingOwner: currentUser);

            var ownerRequests    = new OwnerRequestsViewModel(received, sent, currentUser, _packageService);
            var reservedPrefixes = new ReservedNamespaceListViewModel(currentUser.ReservedNamespaces);

            var model = new ManagePackagesViewModel
            {
                Owners             = owners,
                ListedPackages     = listedPackages,
                UnlistedPackages   = unlistedPackages,
                OwnerRequests      = ownerRequests,
                ReservedNamespaces = reservedPrefixes
            };

            return(View(model));
        }
コード例 #9
0
        public virtual ActionResult Packages()
        {
            var user = _userService.FindByUsername(_currentUser.Identity.Name);
            var packages = _packageService.FindPackagesByOwner(user);

            var published = from p in packages
                            group p by p.PackageRegistration.Id;

            var model = new ManagePackagesViewModel
                {
                    Packages = from pr in published
                               select new PackageViewModel(pr.First())
                                   {
                                       DownloadCount = pr.Sum(p => p.DownloadCount),
                                       Version = null
                                   },
                };
            return View(model);
        }
コード例 #10
0
        public virtual ActionResult Packages()
        {
            var user = GetCurrentUser();
            var packages = PackageService.FindPackagesByOwner(user, includeUnlisted: true)
                .Select(p => new PackageViewModel(p)
                {
                    DownloadCount = p.PackageRegistration.DownloadCount,
                    Version = null
                }).ToList();

            var model = new ManagePackagesViewModel
            {
                Packages = packages
            };
            return View(model);
        }
コード例 #11
0
        public virtual ActionResult Packages()
        {
            var user = UserService.FindByUsername(Identity.Name);
            var packages = PackageService.FindPackagesByOwner(user);

            var model = new ManagePackagesViewModel
                {
                    Packages = from p in packages
                               select new PackageViewModel(p)
                                   {
                                       DownloadCount = p.PackageRegistration.DownloadCount,
                                       Version = null
                                   },
                };
            return View(model);
        }
コード例 #12
0
        public virtual ActionResult Packages()
        {
            var currentUser = GetCurrentUser();

            var owners = new List <ListPackageOwnerViewModel> {
                new ListPackageOwnerViewModel
                {
                    Username = "******"
                },
                new ListPackageOwnerViewModel(currentUser)
            }.Concat(currentUser.Organizations.Select(o => new ListPackageOwnerViewModel(o.Organization)));

            var wasAADLoginOrMultiFactorAuthenticated = User.WasMultiFactorAuthenticated() || User.WasAzureActiveDirectoryAccountUsedForSignin();

            var packages       = PackageService.FindPackagesByAnyMatchingOwner(currentUser, includeUnlisted: true);
            var listedPackages = packages
                                 .Where(p => p.Listed && p.PackageStatusKey == PackageStatus.Available)
                                 .Select(p => _listPackageItemRequiredSignerViewModelFactory.Create(p, currentUser, wasAADLoginOrMultiFactorAuthenticated))
                                 .OrderBy(p => p.Id)
                                 .ToList();
            var unlistedPackages = packages
                                   .Where(p => !p.Listed || p.PackageStatusKey != PackageStatus.Available)
                                   .Select(p => _listPackageItemRequiredSignerViewModelFactory.Create(p, currentUser, wasAADLoginOrMultiFactorAuthenticated))
                                   .OrderBy(p => p.Id)
                                   .ToList();

            // find all received ownership requests
            var userReceived = _packageOwnerRequestService.GetPackageOwnershipRequests(newOwner: currentUser);
            var orgReceived  = currentUser.Organizations
                               .Where(m => ActionsRequiringPermissions.HandlePackageOwnershipRequest.CheckPermissions(currentUser, m.Organization) == PermissionsCheckResult.Allowed)
                               .SelectMany(m => _packageOwnerRequestService.GetPackageOwnershipRequests(newOwner: m.Organization));
            var received = userReceived.Union(orgReceived);

            // find all sent ownership requests
            var userSent = _packageOwnerRequestService.GetPackageOwnershipRequests(requestingOwner: currentUser);
            var orgSent  = currentUser.Organizations
                           .Where(m => ActionsRequiringPermissions.HandlePackageOwnershipRequest.CheckPermissions(currentUser, m.Organization) == PermissionsCheckResult.Allowed)
                           .SelectMany(m => _packageOwnerRequestService.GetPackageOwnershipRequests(requestingOwner: m.Organization));
            var sent = userSent.Union(orgSent);

            var ownerRequests = CreateOwnerRequestsViewModel(received, sent, currentUser);

            var userReservedNamespaces          = currentUser.ReservedNamespaces;
            var organizationsReservedNamespaces = currentUser.Organizations.SelectMany(m => m.Organization.ReservedNamespaces);

            var reservedPrefixes = new ReservedNamespaceListViewModel(userReservedNamespaces.Union(organizationsReservedNamespaces).ToArray());

            var model = new ManagePackagesViewModel
            {
                User                        = currentUser,
                Owners                      = owners,
                ListedPackages              = listedPackages,
                UnlistedPackages            = unlistedPackages,
                OwnerRequests               = ownerRequests,
                ReservedNamespaces          = reservedPrefixes,
                WasMultiFactorAuthenticated = User.WasMultiFactorAuthenticated(),
                IsCertificatesUIEnabled     = ContentObjectService.CertificatesConfiguration?.IsUIEnabledForUser(currentUser) ?? false
            };

            return(View(model));
        }