From bb0c00531dfacd30ecef1ac4444c2e3281fa36b8 Mon Sep 17 00:00:00 2001 From: Rory& Date: Fri, 22 Nov 2024 06:38:42 +0100 Subject: Extra draupnir/policy event work --- .../Spec/State/Policy/PolicyRuleStateEventContent.cs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'LibMatrix.EventTypes/Spec/State') diff --git a/LibMatrix.EventTypes/Spec/State/Policy/PolicyRuleStateEventContent.cs b/LibMatrix.EventTypes/Spec/State/Policy/PolicyRuleStateEventContent.cs index 5bfd77b..0569477 100644 --- a/LibMatrix.EventTypes/Spec/State/Policy/PolicyRuleStateEventContent.cs +++ b/LibMatrix.EventTypes/Spec/State/Policy/PolicyRuleStateEventContent.cs @@ -1,5 +1,6 @@ using System.Security.Cryptography; using System.Text.Json.Serialization; +using System.Text.RegularExpressions; using ArcaneLibs.Attributes; using ArcaneLibs.Extensions; @@ -91,6 +92,14 @@ public abstract class PolicyRuleEventContent : EventContent { } public string GetDraupnir2StateKey() => Convert.ToBase64String(SHA256.HashData($"{Entity}{Recommendation}".AsBytes().ToArray())); + + public Regex GetEntityRegex() => new(Entity.Replace(".", "\\.").Replace("*", ".*").Replace("?", ".")); + + public bool EntityMatches(string entity) => + Entity == entity + || (Entity.Contains("*") || Entity.Contains("?") + ? GetEntityRegex().IsMatch(entity) + : entity == Entity); } public static class PolicyRecommendationTypes { -- cgit 1.5.1