diff --git a/packages/cedar/lib/src/model/policy_set.dart b/packages/cedar/lib/src/model/policy_set.dart index f3e6a0e..6ddd1d9 100644 --- a/packages/cedar/lib/src/model/policy_set.dart +++ b/packages/cedar/lib/src/model/policy_set.dart @@ -108,6 +108,17 @@ abstract class PolicySet ); } + PolicySet merge(PolicySet? other) { + if (other == null) { + return this; + } + return rebuild((b) { + b.policies.addEntries(other.policies.entries); + b.templates.addEntries(other.templates.entries); + b.templateLinks.addAll(other.templateLinks); + }); + } + @override AuthorizationResponse isAuthorized(AuthorizationRequest request) { final context = EvaluationContext(