From 13440d2eddd62bdc31d2536515e51f7e7cb8d178 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 a0729dd7782..767d5eab7b9 100644 --- a/message/externallib.php +++ b/message/externallib.php @@ -3415,6 +3415,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'); @@ -3425,9 +3430,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'] );