Skip to content

Commit 29d090c

Browse files
author
David Monllao
committed
Merge branch 'MDL-61309-34' of git://github.com/andrewnicols/moodle into MOODLE_34_STABLE
2 parents 6cc7e8c + 500146d commit 29d090c

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

mod/forum/classes/privacy/provider.php

+23-23
Original file line numberDiff line numberDiff line change
@@ -143,25 +143,25 @@ public static function get_contexts_for_userid(int $userid) : \core_privacy\loca
143143
// Fetch all forum discussions, and forum posts.
144144
$sql = "SELECT c.id
145145
FROM {context} c
146-
INNER JOIN {course_modules} cm ON cm.id = c.instanceid AND c.contextlevel = :contextlevel
147-
INNER JOIN {modules} m ON m.id = cm.module AND m.name = :modname
148-
INNER JOIN {forum} f ON f.id = cm.instance
146+
JOIN {course_modules} cm ON cm.id = c.instanceid AND c.contextlevel = :contextlevel
147+
JOIN {modules} m ON m.id = cm.module AND m.name = :modname
148+
JOIN {forum} f ON f.id = cm.instance
149149
LEFT JOIN {forum_discussions} d ON d.forum = f.id
150150
LEFT JOIN {forum_posts} p ON p.discussion = d.id
151-
LEFT JOIN {forum_digests} dig ON dig.forum = f.id
152-
LEFT JOIN {forum_subscriptions} sub ON sub.forum = f.id
153-
LEFT JOIN {forum_track_prefs} pref ON pref.forumid = f.id
154-
LEFT JOIN {forum_read} hasread ON hasread.forumid = f.id
155-
LEFT JOIN {forum_discussion_subs} dsub ON dsub.forum = f.id
151+
LEFT JOIN {forum_digests} dig ON dig.forum = f.id AND dig.userid = :digestuserid
152+
LEFT JOIN {forum_subscriptions} sub ON sub.forum = f.id AND sub.userid = :subuserid
153+
LEFT JOIN {forum_track_prefs} pref ON pref.forumid = f.id AND pref.userid = :prefuserid
154+
LEFT JOIN {forum_read} hasread ON hasread.forumid = f.id AND hasread.userid = :hasreaduserid
155+
LEFT JOIN {forum_discussion_subs} dsub ON dsub.forum = f.id AND dsub.userid = :dsubuserid
156156
{$ratingsql->join}
157157
WHERE (
158158
p.userid = :postuserid OR
159159
d.userid = :discussionuserid OR
160-
dig.userid = :digestuserid OR
161-
sub.userid = :subuserid OR
162-
pref.userid = :prefuserid OR
163-
hasread.userid = :hasreaduserid OR
164-
dsub.userid = :dsubuserid OR
160+
dig.id IS NOT NULL OR
161+
sub.id IS NOT NULL OR
162+
pref.id IS NOT NULL OR
163+
hasread.id IS NOT NULL OR
164+
dsub.id IS NOT NULL OR
165165
{$ratingsql->userwhere}
166166
)
167167
";
@@ -269,8 +269,8 @@ public static function export_user_data(approved_contextlist $contextlist) {
269269
sub.userid AS subscribed,
270270
pref.userid AS tracked
271271
FROM {context} c
272-
INNER JOIN {course_modules} cm ON cm.id = c.instanceid
273-
INNER JOIN {forum} f ON f.id = cm.instance
272+
JOIN {course_modules} cm ON cm.id = c.instanceid
273+
JOIN {forum} f ON f.id = cm.instance
274274
LEFT JOIN {forum_digests} dig ON dig.forum = f.id AND dig.userid = :digestuserid
275275
LEFT JOIN {forum_subscriptions} sub ON sub.forum = f.id AND sub.userid = :subuserid
276276
LEFT JOIN {forum_track_prefs} pref ON pref.forumid = f.id AND pref.userid = :prefuserid
@@ -334,15 +334,15 @@ protected static function export_discussion_data(int $userid, array $mappings) {
334334
g.name as groupname,
335335
dsub.preference
336336
FROM {forum} f
337-
INNER JOIN {forum_discussions} d ON d.forum = f.id
337+
JOIN {forum_discussions} d ON d.forum = f.id
338338
LEFT JOIN {groups} g ON g.id = d.groupid
339-
LEFT JOIN {forum_discussion_subs} dsub ON dsub.discussion = d.id
339+
LEFT JOIN {forum_discussion_subs} dsub ON dsub.discussion = d.id AND dsub.userid = :dsubuserid
340340
LEFT JOIN {forum_posts} p ON p.discussion = d.id
341341
WHERE f.id ${foruminsql}
342342
AND (
343343
d.userid = :discussionuserid OR
344344
p.userid = :postuserid OR
345-
dsub.userid = :dsubuserid
345+
dsub.id IS NOT NULL
346346
)
347347
";
348348

@@ -405,14 +405,14 @@ protected static function export_all_posts(int $userid, array $mappings) {
405405
d.name,
406406
d.groupid
407407
FROM {forum} f
408-
INNER JOIN {forum_discussions} d ON d.forum = f.id
409-
INNER JOIN {forum_posts} p ON p.discussion = d.id
410-
LEFT JOIN {forum_read} fr ON fr.postid = p.id
408+
JOIN {forum_discussions} d ON d.forum = f.id
409+
JOIN {forum_posts} p ON p.discussion = d.id
410+
LEFT JOIN {forum_read} fr ON fr.postid = p.id AND fr.userid = :readuserid
411411
{$ratingsql->join}
412412
WHERE f.id ${foruminsql} AND
413413
(
414414
p.userid = :postuserid OR
415-
fr.userid = :readuserid OR
415+
fr.id IS NOT NULL OR
416416
{$ratingsql->userwhere}
417417
)
418418
GROUP BY f.id, p.discussion, d.name, d.groupid
@@ -454,7 +454,7 @@ protected static function export_all_posts_in_discussion(int $userid, \context $
454454
fr.id AS readflag,
455455
rat.id AS hasratings
456456
FROM {forum_discussions} d
457-
INNER JOIN {forum_posts} p ON p.discussion = d.id
457+
JOIN {forum_posts} p ON p.discussion = d.id
458458
LEFT JOIN {forum_read} fr ON fr.postid = p.id AND fr.userid = :readuserid
459459
{$ratingsql->join} AND {$ratingsql->userwhere}
460460
WHERE d.id = :discussionid

0 commit comments

Comments
 (0)