Skip to content

Commit 614de63

Browse files
authored
Merge pull request #127 from DL-MIN/master
Fixes #75
2 parents 65eef2b + 7b88e22 commit 614de63

File tree

1 file changed

+27
-30
lines changed

1 file changed

+27
-30
lines changed

classes/privacy/provider.php

Lines changed: 27 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -142,39 +142,36 @@ public static function get_contexts_for_userid(int $userid) : contextlist {
142142
INNER JOIN {course_modules} cm ON cm.id = c.instanceid AND c.contextlevel = :contextlevel
143143
INNER JOIN {modules} m ON m.id = cm.module AND m.name = :modname
144144
INNER JOIN {moodleoverflow} mof ON mof.id = cm.instance
145-
LEFT JOIN {moodleoverflow_discussions} d ON d.moodleoverflow = mof.id
146-
LEFT JOIN {moodleoverflow_posts} p ON p.discussion = d.id
147-
LEFT JOIN {moodleoverflow_read} r ON r.moodleoverflowid = mof.id
148-
LEFT JOIN {moodleoverflow_subscriptions} s ON s.moodleoverflow = mof.id
149-
LEFT JOIN {moodleoverflow_discuss_subs} ds ON ds.moodleoverflow = mof.id
150-
LEFT JOIN {moodleoverflow_ratings} ra ON ra.moodleoverflowid = mof.id
151-
LEFT JOIN {moodleoverflow_tracking} track ON track.moodleoverflowid = mof.id
152-
LEFT JOIN {moodleoverflow_grades} g ON g.moodleoverflowid = mof.id
153-
WHERE (
154-
d.userid = :duserid OR
155-
d.usermodified = :dmuserid OR
156-
p.userid = :puserid OR
157-
r.userid = :ruserid OR
158-
s.userid = :suserid OR
159-
ds.userid = :dsuserid OR
160-
ra.userid = :rauserid OR
161-
track.userid = :userid OR
162-
g.userid = :guserid
163-
)
164-
";
145+
WHERE EXISTS (
146+
SELECT 1 FROM {moodleoverflow_discussions} d WHERE d.moodleoverflow = mof.id AND (d.userid = :duserid OR d.usermodified = :dmuserid)
147+
) OR EXISTS (
148+
SELECT 1 FROM {moodleoverflow_posts} p WHERE p.discussion IN (SELECT id FROM {moodleoverflow_discussions} WHERE moodleoverflow = mof.id) AND p.userid = :puserid
149+
) OR EXISTS (
150+
SELECT 1 FROM {moodleoverflow_read} r WHERE r.moodleoverflowid = mof.id AND r.userid = :ruserid
151+
) OR EXISTS (
152+
SELECT 1 FROM {moodleoverflow_subscriptions} s WHERE s.moodleoverflow = mof.id AND s.userid = :suserid
153+
) OR EXISTS (
154+
SELECT 1 FROM {moodleoverflow_discuss_subs} ds WHERE ds.moodleoverflow = mof.id AND ds.userid = :dsuserid
155+
) OR EXISTS (
156+
SELECT 1 FROM {moodleoverflow_ratings} ra WHERE ra.moodleoverflowid = mof.id AND ra.userid = :rauserid
157+
) OR EXISTS (
158+
SELECT 1 FROM {moodleoverflow_tracking} track WHERE track.moodleoverflowid = mof.id AND track.userid = :tuserid
159+
) OR EXISTS (
160+
SELECT 1 FROM {moodleoverflow_grades} g WHERE g.moodleoverflowid = mof.id AND g.userid = :guserid
161+
)";
165162

166163
$params = [
167-
'modname' => 'moodleoverflow',
164+
'modname' => 'moodleoverflow',
168165
'contextlevel' => CONTEXT_MODULE,
169-
'duserid' => $userid,
170-
'dmuserid' => $userid,
171-
'puserid' => $userid,
172-
'ruserid' => $userid,
173-
'suserid' => $userid,
174-
'dsuserid' => $userid,
175-
'rauserid' => $userid,
176-
'userid' => $userid,
177-
'guserid' => $userid
166+
'duserid' => $userid,
167+
'dmuserid' => $userid,
168+
'puserid' => $userid,
169+
'ruserid' => $userid,
170+
'suserid' => $userid,
171+
'dsuserid' => $userid,
172+
'rauserid' => $userid,
173+
'tuserid' => $userid,
174+
'guserid' => $userid
178175
];
179176

180177
$contextlist = new \core_privacy\local\request\contextlist();

0 commit comments

Comments
 (0)