MDL-42875 users: Show only profile visible roles on participants list

This commit is contained in:
pau.ferrer-ocana
2014-10-31 10:36:02 +13:00
committed by Sam Hemelryk
parent dc8a9a1b83
commit 33ed15457c
+10 -5
View File
@@ -418,14 +418,19 @@
$select .= $ccselect;
$joins[] = $ccjoin;
// We want to query both the current context and parent contexts.
list($relatedctxsql, $relatedctxparams) = $DB->get_in_or_equal($context->get_parent_context_ids(true), SQL_PARAMS_NAMED, 'relatedctx');
$params = array_merge($params, $relatedctxparams);
// limit list to users with some role only
// Limit list to users with some role only.
if ($roleid) {
// We want to query both the current context and parent contexts.
list($relatedctxsql, $relatedctxparams) = $DB->get_in_or_equal($context->get_parent_context_ids(true), SQL_PARAMS_NAMED, 'relatedctx');
$wheres[] = "u.id IN (SELECT userid FROM {role_assignments} WHERE roleid = :roleid AND contextid $relatedctxsql)";
$params = array_merge($params, array('roleid' => $roleid), $relatedctxparams);
$params = array_merge($params, array('roleid' => $roleid));
} else {
$profileroles = explode(',', $CFG->profileroles);
list($insql, $inparams) = $DB->get_in_or_equal($profileroles, SQL_PARAMS_NAMED);
$wheres[] = "u.id IN (SELECT userid FROM {role_assignments} WHERE roleid $insql AND contextid $relatedctxsql)";
$params = array_merge($params, $inparams);
}
$from = implode("\n", $joins);