diff options
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 + }; +} |
