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 --- Services/PrincipalProvider.cs | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'Services/PrincipalProvider.cs') diff --git a/Services/PrincipalProvider.cs b/Services/PrincipalProvider.cs index e75c6c7..6991c64 100644 --- a/Services/PrincipalProvider.cs +++ b/Services/PrincipalProvider.cs @@ -1,9 +1,23 @@ namespace HyperBooru.Services; -public abstract class PrincipalProvider { - public abstract bool ValidatePassword(HBPrincipal principal, string password); +public interface IPrincipalProvider { + public Principal? GetPrincipal(string name); + public User? GetUser(string name); + public Group? GetGroup(string name); - public abstract HBPrincipal GetPrincipal(string username); + public Group[] GetGroups(Principal principal); + public Group[] GetGroups(Principal principal, bool recurse); - public abstract Group[] GetAllGroups(HBPrincipal principal); + public bool ValidatePassword(User user, string password); +} + +public abstract class PrincipalProvider : IPrincipalProvider { + public abstract Principal? GetPrincipal(string name); + public abstract User? GetUser(string name); + public abstract Group? GetGroup(string name); + + public Group[] GetGroups(Principal principal) => GetGroups(principal, false); + public abstract Group[] GetGroups(Principal principal, bool recurse); + + public abstract bool ValidatePassword(User user, string password); } -- cgit v1.3