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 --- LocalPrincipal.cs | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 LocalPrincipal.cs (limited to 'LocalPrincipal.cs') diff --git a/LocalPrincipal.cs b/LocalPrincipal.cs new file mode 100644 index 0000000..28a2721 --- /dev/null +++ b/LocalPrincipal.cs @@ -0,0 +1,49 @@ +namespace HyperBooru; + +public class LocalPrincipal : HBObject { + public string Name { get; set; } + public SecurityIdentifier Sid { get; set; } + public List MemberOf { get; set; } + + public static implicit operator Principal(LocalPrincipal principal) => + new() { + Name = principal.Name, + Sid = principal.Sid, + }; + + public static implicit operator LocalPrincipal(Principal principal) => + new() { + Name = principal.Name, + Sid = principal.Sid + }; +} + +public class LocalUser : LocalPrincipal { + public string PasswordHash { get; set; } + + public static implicit operator User(LocalUser user) => + new() { + Name = user.Name, + Sid = user.Sid, + }; + + public static implicit operator LocalUser(User user) => + new() { + Name = user.Name, + Sid = user.Sid + }; +} + +public class LocalGroup : LocalPrincipal { + public static implicit operator Group(LocalGroup group) => + new() { + Name = group.Name, + Sid = group.Sid, + }; + + public static implicit operator LocalGroup(Group group) => + new() { + Name = group.Name, + Sid = group.Sid + }; +} -- cgit v1.3