Skip to content

Commit 05e70ea

Browse files
Merge branch 'dev' into dev-pkgdeprecation
2 parents 3c7e24f + 6d80fde commit 05e70ea

14 files changed

Lines changed: 413 additions & 33 deletions

src/NuGet.Services.Entities/AccountDelete.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,19 @@ public class AccountDelete
2828
public User DeletedAccount { get; set; }
2929

3030
/// <summary>
31-
/// The User(admin) key that executed the delete action.
31+
/// The User key that executed the delete action.
3232
/// </summary>
33-
public int DeletedByKey { get; set; }
33+
/// <remarks>
34+
/// <c>null</c> if the user was deleted.
35+
/// </remarks>
36+
public int? DeletedByKey { get; set; }
3437

3538
/// <summary>
36-
/// The User(admin) that executed the delete action.
39+
/// The User that executed the delete action.
3740
/// </summary>
41+
/// <remarks>
42+
/// <c>null</c> if the user was deleted.
43+
/// </remarks>
3844
public User DeletedBy { get; set; }
3945

4046
/// <summary>

src/NuGet.Services.Entities/Package.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,9 +217,11 @@ public bool HasReadMe
217217
public string MinClientVersion { get; set; }
218218

219219
/// <summary>
220-
/// The logged in user when this package version was created.
221-
/// NULL for older packages.
220+
/// The user that uploaded this package or <c>null</c> if the user was deleted.
222221
/// </summary>
222+
/// <remarks>
223+
/// Packages uploaded before this field was added have <c>null</c>.
224+
/// </remarks>
223225
public User User { get; set; }
224226
public int? UserKey { get; set; }
225227

src/NuGet.Services.Entities/PackageDelete.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,15 @@ public PackageDelete()
2020
[Required]
2121
public DateTime DeletedOn { get; set; }
2222

23-
[Required]
23+
/// <remarks>
24+
/// <c>null</c> if the user was deleted.
25+
/// </remarks>
2426
public User DeletedBy { get; set; }
25-
public int DeletedByKey { get; set; }
27+
28+
/// <remarks>
29+
/// <c>null</c> if the user was deleted.
30+
/// </remarks>
31+
public int? DeletedByKey { get; set; }
2632

2733
[Required]
2834
public string Reason { get; set; }

src/NuGet.Services.Entities/PackageDeprecation.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ public PackageDeprecation()
6969
/// <summary>
7070
/// Gets or sets the user that executed the package deprecation.
7171
/// </summary>
72+
/// <remarks>
73+
/// This field will be <c>null</c> if the user that deprecated the package has been deleted.
74+
/// </remarks>
7275
public virtual User DeprecatedByUser { get; set; }
7376

7477
/// <summary>

src/NuGetGallery.Core/Entities/EntitiesContext.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public EntitiesContext(DbConnection connection, bool readOnly)
4949
}
5050

5151
public bool ReadOnly { get; private set; }
52+
public DbSet<Package> Packages { get; set; }
5253
public DbSet<PackageRegistration> PackageRegistrations { get; set; }
5354
public DbSet<Credential> Credentials { get; set; }
5455
public DbSet<Scope> Scopes { get; set; }
@@ -353,7 +354,7 @@ protected override void OnModelCreating(DbModelBuilder modelBuilder)
353354
.HasRequired(a => a.DeletedAccount);
354355

355356
modelBuilder.Entity<AccountDelete>()
356-
.HasRequired(a => a.DeletedBy)
357+
.HasOptional(a => a.DeletedBy)
357358
.WithMany()
358359
.WillCascadeOnDelete(false);
359360

src/NuGetGallery.Core/Entities/IEntitiesContext.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ namespace NuGetGallery
1010
public interface IEntitiesContext
1111
{
1212
DbSet<Certificate> Certificates { get; set; }
13+
DbSet<Package> Packages { get; set; }
1314
DbSet<PackageRegistration> PackageRegistrations { get; set; }
1415
DbSet<Credential> Credentials { get; set; }
1516
DbSet<Scope> Scopes { get; set; }

src/NuGetGallery/Migrations/201904252152567_DeletedByOptional.Designer.cs

Lines changed: 29 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
namespace NuGetGallery.Migrations
2+
{
3+
using System;
4+
using System.Data.Entity.Migrations;
5+
6+
public partial class DeletedByOptional : DbMigration
7+
{
8+
public override void Up()
9+
{
10+
DropForeignKey("dbo.PackageDeletes", "DeletedByKey", "dbo.Users");
11+
DropIndex("dbo.PackageDeletes", new[] { "DeletedByKey" });
12+
DropIndex("dbo.AccountDeletes", new[] { "DeletedByKey" });
13+
AlterColumn("dbo.PackageDeletes", "DeletedByKey", c => c.Int());
14+
AlterColumn("dbo.AccountDeletes", "DeletedByKey", c => c.Int());
15+
CreateIndex("dbo.PackageDeletes", "DeletedByKey");
16+
CreateIndex("dbo.AccountDeletes", "DeletedByKey");
17+
AddForeignKey("dbo.PackageDeletes", "DeletedByKey", "dbo.Users", "Key");
18+
}
19+
20+
public override void Down()
21+
{
22+
DropForeignKey("dbo.PackageDeletes", "DeletedByKey", "dbo.Users");
23+
DropIndex("dbo.AccountDeletes", new[] { "DeletedByKey" });
24+
DropIndex("dbo.PackageDeletes", new[] { "DeletedByKey" });
25+
AlterColumn("dbo.AccountDeletes", "DeletedByKey", c => c.Int(nullable: false));
26+
AlterColumn("dbo.PackageDeletes", "DeletedByKey", c => c.Int(nullable: false));
27+
CreateIndex("dbo.AccountDeletes", "DeletedByKey");
28+
CreateIndex("dbo.PackageDeletes", "DeletedByKey");
29+
AddForeignKey("dbo.PackageDeletes", "DeletedByKey", "dbo.Users", "Key", cascadeDelete: true);
30+
}
31+
}
32+
}

src/NuGetGallery/Migrations/201904252152567_DeletedByOptional.resx

Lines changed: 126 additions & 0 deletions
Large diffs are not rendered by default.

src/NuGetGallery/NuGetGallery.csproj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,14 @@
242242
<Compile Include="Migrations\201904251233185_RemoveVulnerabilityDataFromPackageDeprecationModel.Designer.cs">
243243
<DependentUpon>201904251233185_RemoveVulnerabilityDataFromPackageDeprecationModel.cs</DependentUpon>
244244
</Compile>
245+
<Compile Include="Migrations\201904252152567_DeletedByOptional.cs" />
246+
<Compile Include="Migrations\201904252152567_DeletedByOptional.Designer.cs">
247+
<DependentUpon>201904252152567_DeletedByOptional.cs</DependentUpon>
248+
</Compile>
249+
<Compile Include="Queries\AutocompleteCveIdQueryResults.cs" />
250+
<Compile Include="Queries\AutocompleteCweIdQueryResults.cs" />
251+
<Compile Include="Queries\AutocompleteCveIdQueryResult.cs" />
252+
<Compile Include="Queries\AutocompleteCweIdQueryResult.cs" />
245253
<Compile Include="Services\IPackageDeprecationService.cs" />
246254
<Compile Include="Queries\AutocompleteDatabasePackageIdsQuery.cs" />
247255
<Compile Include="Queries\AutocompleteDatabasePackageVersionsQuery.cs" />
@@ -1715,6 +1723,8 @@
17151723
</EmbeddedResource>
17161724
<EmbeddedResource Include="Migrations\201904251233185_RemoveVulnerabilityDataFromPackageDeprecationModel.resx">
17171725
<DependentUpon>201904251233185_RemoveVulnerabilityDataFromPackageDeprecationModel.cs</DependentUpon>
1726+
<EmbeddedResource Include="Migrations\201904252152567_DeletedByOptional.resx">
1727+
<DependentUpon>201904252152567_DeletedByOptional.cs</DependentUpon>
17181728
</EmbeddedResource>
17191729
<EmbeddedResource Include="OData\QueryAllowed\Data\apiv1packages.json" />
17201730
<EmbeddedResource Include="OData\QueryAllowed\Data\apiv1search.json" />

0 commit comments

Comments
 (0)