From 831bf41b29036ec7923d5cbed2c7d6b5cfa45791 Mon Sep 17 00:00:00 2001 From: Joris Steyn Date: Mon, 3 Jul 2017 09:15:30 +0200 Subject: [PATCH] Cast ARP rules to arrays when service registry sends objects --- src/Entity/Assembler/JanusPushMetadataAssembler.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Entity/Assembler/JanusPushMetadataAssembler.php b/src/Entity/Assembler/JanusPushMetadataAssembler.php index 8b06db0..2da96b5 100644 --- a/src/Entity/Assembler/JanusPushMetadataAssembler.php +++ b/src/Entity/Assembler/JanusPushMetadataAssembler.php @@ -480,6 +480,17 @@ private function assembleAttributeReleasePolicy(stdClass $connection) return array(); } + // EngineBlock expects objects in the metadata in many places so we + // can't decode the metadata with assoc=true. ARP rules should always + // be arrays so we explicitly cast the ARP rules to arrays here. + foreach ($connection->arp_attributes as &$rules) { + foreach ($rules as &$rule) { + if (is_object($rule)) { + $rule = (array) $rule; + } + } + } + return array( 'attributeReleasePolicy' => new AttributeReleasePolicy( (array) $connection->arp_attributes