MDL-12544, hide hidden roles in profile when user has no capability

This commit is contained in:
toyomoyo
2007-12-12 07:12:38 +00:00
parent d40f5b74e6
commit 82b7f28a61
2 changed files with 10 additions and 7 deletions
+8 -5
View File
@@ -3927,19 +3927,22 @@ function get_roles_used_in_context($context, $view = false) {
/**
* This function is used to print roles column in user profile page.
* @param int userid
* @param int contextid
* @param object context
* @return string
*/
function get_user_roles_in_context($userid, $contextid){
global $CFG;
function get_user_roles_in_context($userid, $context, $view=true){
global $CFG, $USER;
$rolestring = '';
$SQL = 'select * from '.$CFG->prefix.'role_assignments ra, '.$CFG->prefix.'role r where ra.userid='.$userid.' and ra.contextid='.$contextid.' and ra.roleid = r.id';
$SQL = 'select * from '.$CFG->prefix.'role_assignments ra, '.$CFG->prefix.'role r where ra.userid='.$userid.' and ra.contextid='.$context->id.' and ra.roleid = r.id';
if ($roles = get_records_sql($SQL)) {
foreach ($roles as $userrole) {
// MDL-12544, if we are in view mode and current user has no capability to view hidden assignment, skip it
if ($userrole->hidden && $view && !has_capability('moodle/role:viewhiddenassigns', $context)) {
continue;
}
$rolestring .= '<a href="'.$CFG->wwwroot.'/user/index.php?contextid='.$userrole->contextid.'&amp;roleid='.$userrole->roleid.'">'.$userrole->name.'</a>, ';
}
}
return rtrim($rolestring, ', ');
}
+2 -2
View File
@@ -360,8 +360,8 @@
print_row(get_string("lastaccess").":", $datestring);
}
/// printing roles
if ($rolestring = get_user_roles_in_context($id, $coursecontext->id)) {
if ($rolestring = get_user_roles_in_context($id, $coursecontext)) {
print_row(get_string('roles').':', format_string($rolestring, false));
}