From 9dcc11eb979b1d49cb246e2eee190f359f451586 Mon Sep 17 00:00:00 2001 From: toyomoyo Date: Thu, 14 Sep 2006 03:54:37 +0000 Subject: [PATCH] taking out user_student table reference in SQL, replaced with role_assignment --- blog/lib.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/blog/lib.php b/blog/lib.php index 41e9dd9c13..d49f3fe02c 100755 --- a/blog/lib.php +++ b/blog/lib.php @@ -456,21 +456,21 @@ case 'course': if ($filterselect != SITEID) { + + // all users with a role assigned + $context = get_context_instance(CONTEXT_COURSE, $filterselect); + if ($parents = get_parent_contexts($context)) { + $contextlists = 'OR ra.contextid IN ('.implode(',', $parents).'))'; + } else { + $contextlists = ')'; + } + $SQL = '(SELECT '.$requiredfields.' FROM '.$CFG->prefix.'post p, '.$tagtablesql - .$CFG->prefix.'user_students s, '.$CFG->prefix.'user u - WHERE p.userid = s.userid '.$tagquerysql.' - AND s.course = '.$filterselect.' - AND u.id = p.userid - AND (p.publishstate = \'site\' OR p.publishstate = \'public\' OR p.userid = '.$USER->id.')) - - UNION - - (SELECT '.$requiredfields.' FROM '.$CFG->prefix.'post p, '.$tagtablesql - .$CFG->prefix.'user_teachers t, '.$CFG->prefix.'user u - WHERE p.userid = t.userid '.$tagquerysql.' - AND t.course = '.$filterselect.' + .$CFG->prefix.'role_assignments ra, '.$CFG->prefix.'user u + WHERE p.userid = ra.userid '.$tagquerysql.' + AND (ra.contextid = '.$context->id.' '.$contextlists.' AND u.id = p.userid - AND (p.publishstate = \'site\' OR p.publishstate = \'public\' OR p.userid = '.$USER->id.'))'; //this will break for postgres, i think + AND (p.publishstate = \'site\' OR p.publishstate = \'public\' OR p.userid = '.$USER->id.'))'; } else { if (isloggedin()) { -- 2.39.5