diff options
| author | Jake Mannens <jake@asger.xyz> | 2023-09-29 05:01:45 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2023-09-29 05:33:04 +1000 |
| commit | 76e4bf609c3d196bd20619188a317fca66f4a04a (patch) | |
| tree | 8d6544efc82782f2417f39f31fd05aa76e68316e /LocalPrincipal.cs | |
| parent | bedcb6b176130fc2c6bd4657c8af4d407b64c970 (diff) | |
Separated Principal and LocalPrincipal types
Diffstat (limited to 'LocalPrincipal.cs')
| -rw-r--r-- | LocalPrincipal.cs | 49 |
1 files changed, 49 insertions, 0 deletions
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<LocalGroup> 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 + }; +} |
