From cb8179b5e5a8d5253d063ed607205f52643410fa Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Mon, 18 Sep 2023 19:34:14 +1000 Subject: Initial commit --- Acl.cs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Acl.cs (limited to 'Acl.cs') diff --git a/Acl.cs b/Acl.cs new file mode 100644 index 0000000..581a8bc --- /dev/null +++ b/Acl.cs @@ -0,0 +1,35 @@ +namespace HyperBooru; + +public enum AclRuleAction { + Allow, + Deny +} + +public class Acl : HBObject { + public HBObject Subject { get; set; } + public List Rules { get; set; } +} + +public class Acl : Acl where T : Enum { + public Type Type => typeof(T); + + public new List> Rules { + get => base.Rules.Cast>().ToList(); + set => base.Rules = value.Cast().ToList(); + } +} + +public class AclRule : HBObject { + public HBPrincipal Principal { get; set; } + public AclRuleAction Action { get; set; } + public ulong Permissions { get; set; } +} + +public class AclRule : AclRule where T : Enum { + public Type Type => typeof(T); + + public new T Permissions { + get => (T) (object) base.Permissions; + set => base.Permissions = (ulong) (object) value; + } +} -- cgit v1.3