summaryrefslogtreecommitdiff
path: root/Services/PrincipalProvider.cs
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2023-09-29 17:46:47 +1000
committerJake Mannens <jake@asger.xyz>2023-09-29 17:57:21 +1000
commite0cf80a5d0e2d6898b611892a331aa917b9370d9 (patch)
tree75809891d57e687a246233f52feead273a1eca7d /Services/PrincipalProvider.cs
parentc5ff0b57a12b605a5ae5ae8a92ce7a4e8eaec77a (diff)
Finalised security service
Diffstat (limited to 'Services/PrincipalProvider.cs')
-rw-r--r--Services/PrincipalProvider.cs12
1 files changed, 10 insertions, 2 deletions
diff --git a/Services/PrincipalProvider.cs b/Services/PrincipalProvider.cs
index 0c35007..d37e8c0 100644
--- a/Services/PrincipalProvider.cs
+++ b/Services/PrincipalProvider.cs
@@ -8,6 +8,9 @@ public interface IPrincipalProvider {
public IGroup[] GetGroups(IPrincipal principal);
public IGroup[] GetGroups(IPrincipal principal, bool recurse);
+ public IGroup[] GetGroups(SecurityIdentifier sid);
+ public IGroup[] GetGroups(SecurityIdentifier sid, bool recurse);
+
public bool ValidatePassword(IUser user, string password);
}
@@ -16,8 +19,13 @@ public abstract class PrincipalProvider : IPrincipalProvider {
public abstract IUser? GetUser(string name);
public abstract IGroup? GetGroup(string name);
- public IGroup[] GetGroups(IPrincipal principal) => GetGroups(principal, false);
- public abstract IGroup[] GetGroups(IPrincipal principal, bool recurse);
+ public IGroup[] GetGroups(IPrincipal principal) =>
+ GetGroups(principal.Sid, false);
+ public IGroup[] GetGroups(IPrincipal principal, bool recurse) =>
+ GetGroups(principal.Sid, recurse);
+
+ public IGroup[] GetGroups(SecurityIdentifier sid) => GetGroups(sid, false);
+ public abstract IGroup[] GetGroups(SecurityIdentifier sid, bool recurse);
public abstract bool ValidatePassword(IUser user, string password);
}