diff options
Diffstat (limited to 'HBContext.cs')
| -rw-r--r-- | HBContext.cs | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/HBContext.cs b/HBContext.cs index 705efe4..2e78b5a 100644 --- a/HBContext.cs +++ b/HBContext.cs @@ -9,6 +9,10 @@ enum HBObjectId { IngestTag = -2, } +enum LocalPrincipalId { + AdminUser = -1 +} + public static class HBObjectGuid { public static readonly Guid NsfwTag = new("EBDAD4F8-455A-4351-8017-1D4854D6FA38"); public static readonly Guid IngestTag = new("EA212801-5BCC-4C0E-814F-FB9D30DB58BC"); @@ -51,6 +55,10 @@ public class HBContext : DbContext { modelBuilder.Entity<UploadedFile>().ToTable("UploadedFiles"); modelBuilder.Entity<LocalPrincipal>().ToTable("SecurityPrincipals"); + modelBuilder.Entity<HBObject>() + .Property(o => o.Owner) + .HasDefaultValue(new SecurityIdentifier(WellKnownSidType.WorldSid)); + // Seed internal tag definitions // These should NEVER change modelBuilder.Entity<TagDefinition>().HasData(new TagDefinition[] { @@ -71,9 +79,10 @@ public class HBContext : DbContext { // Seed initial admin user modelBuilder.Entity<LocalUser>().HasData(new LocalUser[] { new() { - Name = "admin", - Sid = new SecurityIdentifier("S-1-5-18"), - PasswordHash = LocalPrincipalProvider.HashPassword("admin") + LocalPrincipalId = (int) LocalPrincipalId.AdminUser, + Name = "admin", + Sid = new SecurityIdentifier("S-1-5-18"), + PasswordHash = LocalPrincipalProvider.HashPassword("admin") } }); @@ -81,12 +90,18 @@ public class HBContext : DbContext { // additional configuration, as seen below. modelBuilder.Entity<TagDefinition>() .HasMany(e => e.ImplicitTags) - .WithMany(); + .WithMany() + .UsingEntity(e => e.ToTable("ImplicitTags")); modelBuilder.Entity<Media>() .HasOne(m => m.CurrentUploadedFile) .WithOne() .HasForeignKey<Media>("CurrentUploadedFileId"); + + modelBuilder.Entity<LocalPrincipal>() + .HasMany(p => p.MemberOf) + .WithMany() + .UsingEntity(e => e.ToTable("SecurityPrincipalMemberships")); } protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder) { |
