diff --git a/lib/moodlelib.php b/lib/moodlelib.php index e932026d880..0da25cdb0b4 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -4432,19 +4432,7 @@ function complete_user_login($user) { // Queue migrating the messaging data, if we need to. if (!get_user_preferences('core_message_migrate_data', false, $USER->id)) { // Check if there are any legacy messages to migrate. - $sql = "SELECT id - FROM {message} m - WHERE useridfrom = ? - OR useridto = ?"; - $messageexists = $DB->record_exists_sql($sql, [$USER->id, $USER->id]); - - $sql = "SELECT id - FROM {message_read} m - WHERE useridfrom = ? - OR useridto = ?"; - $messagereadexists = $DB->record_exists_sql($sql, [$USER->id, $USER->id]); - - if ($messageexists || $messagereadexists) { + if (\core_message\helper::legacy_messages_exist($USER->id)) { \core_message\task\migrate_message_data::queue_task($USER->id); } else { set_user_preference('core_message_migrate_data', true, $USER->id); diff --git a/message/classes/helper.php b/message/classes/helper.php index 0c68fd74d4d..cf5a8b68b6d 100644 --- a/message/classes/helper.php +++ b/message/classes/helper.php @@ -330,4 +330,28 @@ class helper { sort($ids); return implode('_', $ids); } + + /** + * Checks if legacy messages exist for a given user. + * + * @param int $userid + * @return bool + */ + public static function legacy_messages_exist($userid) { + global $DB; + + $sql = "SELECT id + FROM {message} m + WHERE useridfrom = ? + OR useridto = ?"; + $messageexists = $DB->record_exists_sql($sql, [$userid, $userid]); + + $sql = "SELECT id + FROM {message_read} m + WHERE useridfrom = ? + OR useridto = ?"; + $messagereadexists = $DB->record_exists_sql($sql, [$userid, $userid]); + + return $messageexists || $messagereadexists; + } }