Mare 0.9 (#27)

* add jwt expiry

* update api

* merge

* start rework permissions

* ok so in theory this compiles

* make it work I guess

* reuse some permissions

* fix intermediate connectivity issues

* fixes

* whatever

* some fixes I guess

* fix some stuff

* idk some random fixes I guess

* change some defaults

* update nuget

* adjust order of operations

* adjust deletion of account

* remove todo

---------

Co-authored-by: rootdarkarchon <root.darkarchon@outlook.com>
This commit is contained in:
rootdarkarchon
2023-10-17 21:36:33 +02:00
committed by GitHub
parent 2c9d432fed
commit 302e6ffb62
39 changed files with 3564 additions and 454 deletions

View File

@@ -45,6 +45,11 @@ public class MareDbContext : DbContext
public DbSet<UserProfileData> UserProfileData { get; set; }
public DbSet<UserProfileDataReport> UserProfileReports { get; set; }
public DbSet<User> Users { get; set; }
public DbSet<UserPermissionSet> Permissions { get; set; }
public DbSet<GroupPairPreferredPermission> GroupPairPreferredPermissions { get; set; }
public DbSet<UserDefaultPreferredPermission> UserDefaultPreferredPermissions { get; set; }
public IQueryable<UserPermissionQuery> GetAllPairsForUser(string uid) => FromExpression(() => GetAllPairsForUser(uid));
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
@@ -77,5 +82,21 @@ public class MareDbContext : DbContext
modelBuilder.Entity<UserProfileData>().ToTable("user_profile_data");
modelBuilder.Entity<UserProfileData>().HasKey(c => c.UserUID);
modelBuilder.Entity<UserProfileDataReport>().ToTable("user_profile_data_reports");
modelBuilder.Entity<UserPermissionSet>().ToTable("user_permission_sets");
modelBuilder.Entity<UserPermissionSet>().HasKey(u => new { u.UserUID, u.OtherUserUID });
modelBuilder.Entity<UserPermissionSet>().HasIndex(c => c.UserUID);
modelBuilder.Entity<UserPermissionSet>().HasIndex(c => c.OtherUserUID);
modelBuilder.Entity<GroupPairPreferredPermission>().ToTable("group_pair_preferred_permissions");
modelBuilder.Entity<GroupPairPreferredPermission>().HasKey(u => new { u.UserUID, u.GroupGID });
modelBuilder.Entity<GroupPairPreferredPermission>().HasIndex(c => c.UserUID);
modelBuilder.Entity<GroupPairPreferredPermission>().HasIndex(c => c.GroupGID);
modelBuilder.Entity<UserDefaultPreferredPermission>().ToTable("user_default_preferred_permissions");
modelBuilder.Entity<UserDefaultPreferredPermission>().HasKey(u => u.UserUID);
modelBuilder.Entity<UserDefaultPreferredPermission>().HasIndex(u => u.UserUID);
modelBuilder.Entity<UserDefaultPreferredPermission>().HasOne(u => u.User);
modelBuilder.HasDbFunction(typeof(MareDbContext).GetMethod(nameof(GetAllPairsForUser), new[] { typeof(string) }))
.HasName("get_all_pairs_for_user");
modelBuilder.Entity<UserPermissionQuery>().HasNoKey();
modelBuilder.Entity<UserPermissionQuery>().ToTable("user_permission_query", t => t.ExcludeFromMigrations());
}
}