MDL-65573 mod_forum: Set userid properly after split

* Set the discussion's userid properly when splitting a discussion.
* Update step to correct existing incorrect records.
This commit is contained in:
Peter
2020-01-14 07:34:18 +08:00
parent 77d1c41502
commit 18cd2efd44
3 changed files with 22 additions and 2 deletions
+20
View File
@@ -220,8 +220,28 @@ function xmldb_forum_upgrade($oldversion) {
upgrade_mod_savepoint(true, 2019100109, 'forum');
}
// Automatically generated Moodle v3.8.0 release upgrade line.
// Put any upgrade step following this.
if ($oldversion < 2019111801) {
$sql = "SELECT d.id AS discussionid, p.userid AS correctuser
FROM {forum_discussions} d
INNER JOIN {forum_posts} p ON p.id = d.firstpost
WHERE d.userid <> p.userid";
$recordset = $DB->get_recordset_sql($sql);
foreach ($recordset as $record) {
$object = new stdClass();
$object->id = $record->discussionid;
$object->userid = $record->correctuser;
$DB->update_record('forum_discussions', $object);
}
$recordset->close();
// Forum savepoint reached.
upgrade_mod_savepoint(true, 2019111801, 'forum');
}
return true;
}
+1 -1
View File
@@ -562,7 +562,7 @@ if (!empty($forum)) {
$newdiscussion->forum = $discussion->forum;
$newdiscussion->name = $name;
$newdiscussion->firstpost = $post->id;
$newdiscussion->userid = $discussion->userid;
$newdiscussion->userid = $post->userid;
$newdiscussion->groupid = $discussion->groupid;
$newdiscussion->assessed = $discussion->assessed;
$newdiscussion->usermodified = $post->userid;
+1 -1
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2019111800; // The current module version (Date: YYYYMMDDXX)
$plugin->version = 2019111801; // The current module version (Date: YYYYMMDDXX)
$plugin->requires = 2019111200; // Requires this Moodle version
$plugin->component = 'mod_forum'; // Full name of the plugin (used for diagnostics)