public static AbacAuthorizationPolicy CreateFromGrammar(string policy, WellKnownGrammars grammar = WellKnownGrammars.Bal) { try { return(DefaultParser.Parse(policy, grammar)); } catch (Exception exception) { throw new InvalidOperationException($"Policy can't be parsed using the grammar {Enum.GetName(typeof(WellKnownGrammars), grammar)} and policy is not created succcesfully.", exception); } }
public static AbacAuthorizationPolicy Parse(string policy, WellKnownGrammars grammar) { foreach (var parser in _parsers) { if (parser.CanParse(grammar)) { return(parser.Parse(policy)); } } throw new InvalidOperationException($"The grammar {Enum.GetName(typeof(WellKnownGrammars), grammar)} does not contain any parser registered."); }
public bool CanParse(WellKnownGrammars grammar) { return(grammar == WellKnownGrammars.Bal); }