From bb65effe41524d8373c1dc499c3323ac469ea558 Mon Sep 17 00:00:00 2001 From: Jun Pataleta Date: Fri, 11 Apr 2025 11:08:36 +0800 Subject: [PATCH] MDL-72704 message: Additional optimisation tweaks * Return early if the `userids` params is empty or if the filtered user IDs end up being empty. --- message/externallib.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/message/externallib.php b/message/externallib.php index e51093797b5..6810ecfefea 100644 --- a/message/externallib.php +++ b/message/externallib.php @@ -3396,6 +3396,11 @@ class core_message_external extends external_api { throw new moodle_exception('You do not have permission to perform this action.'); } + // Return early if no userids are provided. + if (empty($params['userids'])) { + return []; + } + // Filter the user IDs, removing the IDs of the users that the current user cannot view. require_once($CFG->dirroot . '/user/lib.php'); $userfieldsapi = \core_user\fields::for_userpic()->including('username', 'deleted'); @@ -3406,9 +3411,14 @@ class core_message_external extends external_api { return user_can_view_profile($targetuser); }); + // Return early if no user IDs are left after filtering. + if (empty($filteredids)) { + return []; + } + return \core_message\helper::get_member_info( $params['referenceuserid'], - $filteredids ?? [], + $filteredids, $params['includecontactrequests'], $params['includeprivacyinfo'] );