From 299e58db28202be8706dee1c570c382e1489213b Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Mon, 9 Oct 2023 16:00:18 +1100 Subject: AclDialog --- Services/SecurityService.cs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'Services') diff --git a/Services/SecurityService.cs b/Services/SecurityService.cs index e365266..2d23a58 100644 --- a/Services/SecurityService.cs +++ b/Services/SecurityService.cs @@ -5,6 +5,15 @@ using System.Data; namespace HyperBooru.Services; public interface ISecurityService { + public IPrincipal[]? SearchPrincipals(string name); + public IPrincipal? GetPrincipal(string name); + public IUser? GetUser(string name); + public IGroup? GetGroup(string name); + public bool ValidatePassword(IUser user, string password); + + public SecurityIdentifier? TranslateName(string name); + public string TranslateName(SecurityIdentifier sid); + public IEnumerable Filter( IEnumerable objects, IPrincipal principal, @@ -51,6 +60,37 @@ public class SecurityService : ISecurityService { }; } + public IPrincipal[]? SearchPrincipals(string name) => + principalProvider.SearchPrincipals(name); + + public IPrincipal? GetPrincipal(string name) => + principalProvider.GetPrincipal(name); + + public IUser? GetUser(string name) => + principalProvider.GetUser(name); + + public IGroup? GetGroup(string name) => + principalProvider.GetGroup(name); + + public bool ValidatePassword(IUser user, string password) => + principalProvider.ValidatePassword(user, password); + + public string TranslateName(SecurityIdentifier sid) { + var wellKnownSid = WellKnownSid.TranslateName(sid); + if(wellKnownSid is not null) + return wellKnownSid; + + return sid.SddlForm; + } + + public SecurityIdentifier? TranslateName(string name) { + var wellKnownSid = WellKnownSid.TranslateName(name); + if(wellKnownSid is not null) + return wellKnownSid; + + throw new NotImplementedException(); + } + public IEnumerable Filter( IEnumerable objects, IPrincipal principal, -- cgit v1.3