Skip to content

Commit a06b22b

Browse files
author
Scott Bommarito
authored
Hotfix: ManageDeprecation is not enabled for logged out users (#7020)
1 parent 888bffc commit a06b22b

2 files changed

Lines changed: 55 additions & 1 deletion

File tree

src/NuGetGallery/Controllers/PackagesController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,7 @@ public virtual async Task<ActionResult> DisplayPackage(string id, string version
748748
model.SymbolsPackageValidationIssues = _validationService.GetLatestPackageValidationIssues(model.LatestSymbolsPackage);
749749
model.IsCertificatesUIEnabled = _contentObjectService.CertificatesConfiguration?.IsUIEnabledForUser(currentUser) ?? false;
750750
model.IsAtomFeedEnabled = _featureFlagService.IsPackagesAtomFeedEnabled();
751-
model.IsPackageDeprecationEnabled = _featureFlagService.IsManageDeprecationEnabled(currentUser);
751+
model.IsPackageDeprecationEnabled = currentUser != null && _featureFlagService.IsManageDeprecationEnabled(currentUser);
752752

753753
model.ReadMeHtml = await _readMeService.GetReadMeHtmlAsync(package);
754754

tests/NuGetGallery.Facts/Controllers/PackagesControllerFacts.cs

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,6 +1076,60 @@ public async Task ShowsAtomFeedIfEnabled(bool isAtomFeedEnabled)
10761076
deprecationService.Verify();
10771077
}
10781078

1079+
[Theory]
1080+
[InlineData(false)]
1081+
[InlineData(true)]
1082+
public async Task DoesNotShowDeprecationToLoggedOutUsers(bool isDeprecationEnabled)
1083+
{
1084+
var featureFlagService = new Mock<IFeatureFlagService>();
1085+
var packageService = new Mock<IPackageService>();
1086+
var deprecationService = new Mock<IPackageDeprecationService>();
1087+
var controller = CreateController(
1088+
GetConfigurationService(),
1089+
packageService: packageService,
1090+
featureFlagService: featureFlagService,
1091+
deprecationService: deprecationService);
1092+
1093+
var id = "Foo";
1094+
var package = new Package()
1095+
{
1096+
PackageRegistration = new PackageRegistration()
1097+
{
1098+
Id = id,
1099+
Owners = new List<User>()
1100+
},
1101+
Version = "01.1.01",
1102+
NormalizedVersion = "1.1.1",
1103+
Title = "A test package!"
1104+
};
1105+
1106+
var packages = new[] { package };
1107+
packageService
1108+
.Setup(p => p.FindPackagesById(id, PackageDeprecationFieldsToInclude.Deprecation))
1109+
.Returns(packages);
1110+
1111+
packageService
1112+
.Setup(p => p.FilterLatestPackage(packages, SemVerLevelKey.SemVer2, true))
1113+
.Returns(package);
1114+
1115+
featureFlagService
1116+
.Setup(x => x.IsManageDeprecationEnabled(It.IsAny<User>()))
1117+
.Returns(isDeprecationEnabled);
1118+
1119+
deprecationService
1120+
.Setup(x => x.GetDeprecationByPackage(package))
1121+
.Verifiable();
1122+
1123+
// Arrange and Act
1124+
var result = await controller.DisplayPackage(id, version: null);
1125+
1126+
// Assert
1127+
var model = ResultAssert.IsView<DisplayPackageViewModel>(result);
1128+
Assert.False(model.IsPackageDeprecationEnabled);
1129+
1130+
deprecationService.Verify();
1131+
}
1132+
10791133
[Theory]
10801134
[InlineData(false)]
10811135
[InlineData(true)]

0 commit comments

Comments
 (0)