From f5d563c36143d792a50e0940b6291ff5cbee54a0 Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos <1697880+AngelFQC@users.noreply.github.com> Date: Tue, 17 Sep 2024 13:17:14 -0500 Subject: [PATCH] Plugin: Azure: Catch exception when getting group members - refs BT#21930 --- .../src/AzureSyncUsergroupsCommand.php | 12 +++++++++--- .../src/AzureSyncUsersCommand.php | 9 ++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/plugin/azure_active_directory/src/AzureSyncUsergroupsCommand.php b/plugin/azure_active_directory/src/AzureSyncUsergroupsCommand.php index f64975cd25..30087a16e6 100644 --- a/plugin/azure_active_directory/src/AzureSyncUsergroupsCommand.php +++ b/plugin/azure_active_directory/src/AzureSyncUsergroupsCommand.php @@ -48,10 +48,16 @@ class AzureSyncUsergroupsCommand extends AzureCommand yield sprintf('Obtaining members for group (ID %d)', $groupId); - foreach ($this->getAzureGroupMembers($azureGroupUid) as $azureGroupMember) { - if ($userId = $this->plugin->getUserIdByVerificationOrder($azureGroupMember, 'id')) { - $newGroupMembers[] = $userId; + try { + foreach ($this->getAzureGroupMembers($azureGroupUid) as $azureGroupMember) { + if ($userId = $this->plugin->getUserIdByVerificationOrder($azureGroupMember, 'id')) { + $newGroupMembers[] = $userId; + } } + } catch (Exception $e) { + yield $e->getMessage(); + + continue; } if ($newGroupMembers) { diff --git a/plugin/azure_active_directory/src/AzureSyncUsersCommand.php b/plugin/azure_active_directory/src/AzureSyncUsersCommand.php index 748204680b..36b60f9a2f 100644 --- a/plugin/azure_active_directory/src/AzureSyncUsersCommand.php +++ b/plugin/azure_active_directory/src/AzureSyncUsersCommand.php @@ -42,7 +42,14 @@ class AzureSyncUsersCommand extends AzureCommand $em = Database::getManager(); foreach ($roleGroups as $userRole => $groupUid) { - $azureGroupMembersInfo = iterator_to_array($this->getAzureGroupMembers($groupUid)); + try { + $azureGroupMembersInfo = iterator_to_array($this->getAzureGroupMembers($groupUid)); + } catch (Exception $e) { + yield $e->getMessage(); + + continue; + } + $azureGroupMembersUids = array_column($azureGroupMembersInfo, 'id'); foreach ($azureGroupMembersUids as $azureGroupMembersUid) {