diff --git a/app/utility/base_planning_svc.py b/app/utility/base_planning_svc.py index f428b07ff..264c1560a 100644 --- a/app/utility/base_planning_svc.py +++ b/app/utility/base_planning_svc.py @@ -266,13 +266,14 @@ async def _do_enforcements(self, link, operation): """ for req_inst in link.ability.requirements: if req_inst.module not in operation.planner.ignore_enforcement_modules: - requirements_info = dict(module=req_inst.module, enforcements=req_inst.relationship_match[0]) - cache_key = str(requirements_info) - if cache_key not in self._cached_requirement_modules: - self._cached_requirement_modules[cache_key] = await self.load_module('Requirement', requirements_info) - requirement = self._cached_requirement_modules[cache_key] - if not await requirement.enforce(link, operation): - return False + for rel_match in req_inst.relationship_match: + requirements_info = dict(module=req_inst.module, enforcements=rel_match) + cache_key = str(requirements_info) + if cache_key not in self._cached_requirement_modules: + self._cached_requirement_modules[cache_key] = await self.load_module('Requirement', requirements_info) + requirement = self._cached_requirement_modules[cache_key] + if not await requirement.enforce(link, operation): + return False return True async def _trim_by_limit(self, decoded_test, facts):