From 78348dfc4e57236bcaacda47ef645c6163c335b1 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Tue, 10 Apr 2018 15:00:57 +0800 Subject: [PATCH] MDL-61255 core_message: added helper function to detect legacy messages --- lib/moodlelib.php | 14 +------------- message/classes/helper.php | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 13 deletions(-) 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; + } }