summaryrefslogtreecommitdiff
path: root/HBContext.cs
diff options
context:
space:
mode:
Diffstat (limited to 'HBContext.cs')
-rw-r--r--HBContext.cs23
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) {