Skip to content

Commit

Permalink
Merge pull request #4875 from NuGet/dev
Browse files Browse the repository at this point in the history
[10-19-2017] RI of Dev to Master
  • Loading branch information
shishirx34 committed Oct 20, 2017
2 parents da86aef + e130d8f commit 9bf609c
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 38 deletions.
49 changes: 15 additions & 34 deletions src/NuGetGallery/Scripts/gallery/page-manage-owners.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

var viewModel = {
package: { id: packageId },
isUserAnAdmin: isUserAnAdmin,
owners: ko.observableArray([]),
newOwnerUsername: ko.observable(''),
newOwnerMessage: ko.observable(''),
Expand All @@ -29,15 +30,7 @@

message: ko.observable(''),

hasMoreThanOneOwner: function () {
return true;
},

isCurrentNamespaceOwner: function () {
return true;
},

hasMoreThanOneNamespaceOwners: function () {
IsAllowedToRemove: function (owner) {
return true;
},

Expand Down Expand Up @@ -158,51 +151,39 @@
}
};

viewModel.hasMoreThanOneOwner = ko.computed(function () {
viewModel.IsAllowedToRemove = function (owner) {
if (isUserAnAdmin.toLocaleLowerCase() === "True".toLocaleLowerCase()
|| owner.pending()) {
return true;
};

if (this.owners().length < 2) {
return false;
}

var approvedOwner = 0;
var currentOwnerOwnsNamespace = false;
var namespaceOwnerCount = 0;

ko.utils.arrayForEach(this.owners(), function (owner) {
if (owner.pending() === false) {
approvedOwner++;
}
});

return approvedOwner >= 2;
}, viewModel);

viewModel.isCurrentNamespaceOwner = ko.computed(function () {
if (this.owners().length < 2) {
return false;
}

var currentOwnerOwnsNamespace = false;
ko.utils.arrayForEach(this.owners(), function (owner) {
if (owner.current === true) {
currentOwnerOwnsNamespace = owner.isNamespaceOwner();
}
});

return currentOwnerOwnsNamespace;
}, viewModel);

viewModel.hasMoreThanOneNamespaceOwners = ko.computed(function () {
if (this.owners().length < 2) {
return false;
}

var namespaceOwnerCount = 0;
ko.utils.arrayForEach(this.owners(), function (owner) {
if (owner.isNamespaceOwner() === true) {
namespaceOwnerCount++;
}
});

return namespaceOwnerCount >= 2;
}, viewModel);
return approvedOwner >= 2
&& (!owner.isNamespaceOwner()
|| (currentOwnerOwnsNamespace
&& namespaceOwnerCount >= 2));
};

ko.applyBindings(viewModel);

Expand Down
3 changes: 3 additions & 0 deletions src/NuGetGallery/ViewModels/ManagePackageOwnersViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@ namespace NuGetGallery
{
public class ManagePackageOwnersViewModel : ListPackageItemViewModel
{
public bool IsCurrentUserAnAdmin;

public ManagePackageOwnersViewModel(Package package, IPrincipal currentUser)
: base(package)
{
IsCurrentUserAnAdmin = currentUser.IsAdministrator();
}
}
}
7 changes: 3 additions & 4 deletions src/NuGetGallery/Views/Packages/ManagePackageOwners.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@
<span data-bind="visible: pending">(pending approval)</span>
</span>
</div>
<!-- ko if: (pending() || $parent.hasMoreThanOneOwner())
&& (!isNamespaceOwner() || ($parent.isCurrentNamespaceOwner() && $parent.hasMoreThanOneNamespaceOwners())) -->
<!-- ko if: $parent.IsAllowedToRemove($data) -->
<div class="col-md-3 remove-owner">
<a class="icon-link"
href="#"
Expand All @@ -62,8 +61,7 @@
</a>
</div>
<!-- /ko -->
<!-- ko ifnot: (pending() || $parent.hasMoreThanOneOwner())
&& (!isNamespaceOwner() || ($parent.isCurrentNamespaceOwner() && $parent.hasMoreThanOneNamespaceOwners())) -->
<!-- ko ifnot: $parent.IsAllowedToRemove($data) -->
<div class="col-md-3 remove-owner-disabled">
<a class="icon-link"
title="Cannot remove the only owner or reserved namespace restrictions apply.">
Expand Down Expand Up @@ -142,6 +140,7 @@
@section bottomScripts {
<script type="text/javascript">
var packageId = "@Model.Id";
var isUserAnAdmin = "@Model.IsCurrentUserAnAdmin";
var packageUrl = "@Url.Package(Model.Id)";
var getPackageOwnersUrl = "@Url.GetPackageOwners()";
var getAddPackageOwnerConfirmationUrl = "@Url.GetAddPackageOwnerConfirmation()";
Expand Down

0 comments on commit 9bf609c

Please sign in to comment.