Pending to commit changes to uploaduser.php. Credit goes to Anthony Borrow. Thanks!
Merged from 19_STABLE
upgrade_main_savepoint($result, 2009041700);
}
+ if ($result && $oldversion < 2009042600) {
+ /// Deleting orphaned messages from deleted users.
+ require_once($CFG->dirroot.'/message/lib.php');
+ /// Detect deleted users with messages sent(useridfrom) and not read
+ if ($deletedusers = $DB->get_records_sql('SELECT DISTINCT u.id
+ FROM {user} u
+ JOIN {message} m ON m.useridfrom = u.id
+ WHERE u.deleted = ?', array(1))) {
+ foreach ($deletedusers as $deleteduser) {
+ message_move_userfrom_unread2read($deleteduser->id); // move messages
+ }
+ }
+ /// Main savepoint reached
+ upgrade_main_savepoint($result, 2009042600);
+ }
+
return $result;
}
global $CFG, $DB;
require_once($CFG->libdir.'/grouplib.php');
require_once($CFG->libdir.'/gradelib.php');
+ require_once($CFG->dirroot.'/message/lib.php');
// TODO: decide if this transaction is really needed
$DB->begin_sql();
}
}
+ //move unread messages from this user to read
+ message_move_userfrom_unread2read($user->id);
+
// remove from all groups
$DB->delete_records('groups_members', array('userid'=>$user->id));
print_error('invaliduserid');
}
+ if ($user1->deleted) {
+ print_header();
+ print_heading(get_string('userdeleted').': '.$userid1);
+ print_footer();
+ die;
+ }
+
if (has_capability('moodle/site:readallmessages', get_context_instance(CONTEXT_SYSTEM))) { // Able to see any discussion
$userid2 = optional_param('user2', $USER->id, PARAM_INT);
if (! $user2 = $DB->get_record("user", array("id"=>$userid2))) { // Check
print_error('invaliduserid');
}
+ if ($user2->deleted) {
+ print_header();
+ print_heading(get_string('userdeleted').': '.$userid2);
+ print_footer();
+ die;
+ }
} else {
$userid2 = $USER->id; // Can only see messages involving yourself
$user2 = $USER;
echo '</tr>';
}
+ /**
+ * Moves unread messages from message table to message_read for a given from user
+ * @param object $userid User id
+ * @return boolean success
+ */
+function message_move_userfrom_unread2read($userid) {
+
+ global $DB;
+
+ // move all unread messages from message table to messasge_read
+ if ($messages = $DB->get_records_select('message', 'useridfrom = ?', array($userid), 'timecreated')) {
+ foreach ($messages as $message) {
+ $message->timeread = 0; //the message was never read
+ $messageid = $message->id;
+ unset($message->id);
+ if ($DB->insert_record('message_read', $message)) {
+ $DB->delete_records('message', array('id' => $messageid));
+ $DB->delete_records('message_working', array('unreadmessageid' => $messageid));
+ } else {
+ return false;
+ }
+ }
+ }
+ return true;
+}
+
function message_get_popup_messages($destuserid, $fromuserid=NULL){
global $DB;
// This is compared against the values stored in the database to determine
// whether upgrades should be performed (see lib/db/*.php)
- $version = 2009041700; // YYYYMMDD = date of the last version bump
+ $version = 2009042600; // YYYYMMDD = date of the last version bump
// XX = daily increments
$release = '2.0 dev (Build: 20090426)'; // Human-friendly version name