From 76e4bf609c3d196bd20619188a317fca66f4a04a Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Fri, 29 Sep 2023 05:01:45 +1000 Subject: Separated Principal and LocalPrincipal types --- PrincipalProviders/LocalPrincipalProvider.cs | 49 ++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 PrincipalProviders/LocalPrincipalProvider.cs (limited to 'PrincipalProviders/LocalPrincipalProvider.cs') diff --git a/PrincipalProviders/LocalPrincipalProvider.cs b/PrincipalProviders/LocalPrincipalProvider.cs new file mode 100644 index 0000000..7bee800 --- /dev/null +++ b/PrincipalProviders/LocalPrincipalProvider.cs @@ -0,0 +1,49 @@ +using HyperBooru.Services; +using Microsoft.EntityFrameworkCore; + +namespace HyperBooru.PrincipalProviders; + +public class LocalPrincipalProvider : PrincipalProvider { + private IDbContextFactory dbFactory; + + public LocalPrincipalProvider(IDbContextFactory dbFactory) => + this.dbFactory = dbFactory; + + public override Principal? GetPrincipal(string name) { + using var db = dbFactory.CreateDbContext(); + + LocalPrincipal? principal = db.Principals.FirstOrDefault(p => p.Name == name); + if(principal is null) + return null; + + return principal; + } + + public override User? GetUser(string name) { + using var db = dbFactory.CreateDbContext(); + + LocalUser? user = db.Users.FirstOrDefault(p => p.Name == name); + if(user is null) + return null; + + return user; + } + + public override Group? GetGroup(string name) { + using var db = dbFactory.CreateDbContext(); + + LocalGroup? group = db.Groups.FirstOrDefault(p => p.Name == name); + if(group is null) + return null; + + return group; + } + + public override Group[] GetGroups(Principal principal, bool recurse) { + throw new NotImplementedException(); + } + + public override bool ValidatePassword(User principal, string password) { + throw new NotImplementedException(); + } +} -- cgit v1.3