summaryrefslogtreecommitdiff
path: root/PrincipalProviders/LocalPrincipalProvider.cs
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2023-10-16 02:01:27 +1100
committerJake Mannens <jake@asger.xyz>2023-10-16 02:01:27 +1100
commit07728d1048f34e1d048da63684b341ab30bc1d06 (patch)
tree9c92b30be5f3cd060827edc2ff5836b6122a9cdd /PrincipalProviders/LocalPrincipalProvider.cs
parentea89ec0c1b05ac246f2ffd5907daace27564100b (diff)
FeedService and AclDialog
Diffstat (limited to 'PrincipalProviders/LocalPrincipalProvider.cs')
-rw-r--r--PrincipalProviders/LocalPrincipalProvider.cs22
1 files changed, 22 insertions, 0 deletions
diff --git a/PrincipalProviders/LocalPrincipalProvider.cs b/PrincipalProviders/LocalPrincipalProvider.cs
index 5c27518..723ff81 100644
--- a/PrincipalProviders/LocalPrincipalProvider.cs
+++ b/PrincipalProviders/LocalPrincipalProvider.cs
@@ -66,6 +66,28 @@ public class LocalPrincipalProvider : PrincipalProvider {
return groups.ToArray();
}
+ public override SecurityIdentifier? TranslateName(string name) {
+ using var db = dbFactory.CreateDbContext();
+ try {
+ return db.Principals
+ .First(p => p.Name.ToLower() == name.ToLower().Trim())
+ .Sid;
+ } catch(InvalidOperationException) {
+ return null;
+ }
+ }
+
+ public override string? TranslateName(SecurityIdentifier sid) {
+ using var db = dbFactory.CreateDbContext();
+ try {
+ return db.Principals
+ .First(p => p.Sid == sid)
+ .Name;
+ } catch(InvalidOperationException) {
+ return null;
+ }
+ }
+
public override bool ValidatePassword(IUser user, string password) =>
((LocalUser) user).PasswordHash == HashPassword(password);