mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
MDL-33869 user_get_user_details: add support for 'Show user identity' fields set by administrator
This commit is contained in:
parent
3a3f3b223f
commit
48a7b182f1
26
user/lib.php
26
user/lib.php
@ -237,6 +237,8 @@ function user_get_user_details($user, $course = null, array $userfields = array(
|
||||
$currentuser = ($user->id == $USER->id);
|
||||
$isadmin = is_siteadmin($USER);
|
||||
|
||||
$showuseridentityfields = get_extra_user_fields($context);
|
||||
|
||||
if (!empty($course)) {
|
||||
$canviewhiddenuserfields = has_capability('moodle/course:viewhiddenuserfields', $context);
|
||||
} else {
|
||||
@ -319,16 +321,19 @@ function user_get_user_details($user, $course = null, array $userfields = array(
|
||||
if ($user->address && in_array('address', $userfields)) {
|
||||
$userdetails['address'] = $user->address;
|
||||
}
|
||||
if ($user->phone1 && in_array('phone1', $userfields)) {
|
||||
$userdetails['phone1'] = $user->phone1;
|
||||
}
|
||||
if ($user->phone2 && in_array('phone2', $userfields)) {
|
||||
$userdetails['phone2'] = $user->phone2;
|
||||
}
|
||||
} else {
|
||||
$hiddenfields = array_flip(explode(',', $CFG->hiddenuserfields));
|
||||
}
|
||||
|
||||
if ($user->phone1 && in_array('phone1', $userfields) &&
|
||||
(isset($showuseridentityfields['phone1']) or $canviewhiddenuserfields)) {
|
||||
$userdetails['phone1'] = $user->phone1;
|
||||
}
|
||||
if ($user->phone2 && in_array('phone2', $userfields) &&
|
||||
(isset($showuseridentityfields['phone2']) or $canviewhiddenuserfields)) {
|
||||
$userdetails['phone2'] = $user->phone2;
|
||||
}
|
||||
|
||||
if (isset($user->description) && (!isset($hiddenfields['description']) or $isadmin)) {
|
||||
if (!$cannotviewdescription) {
|
||||
|
||||
@ -393,6 +398,7 @@ function user_get_user_details($user, $course = null, array $userfields = array(
|
||||
if (in_array('email', $userfields) && ($isadmin // The admin is allowed the users email
|
||||
or $currentuser // Of course the current user is as well
|
||||
or $canviewuseremail // this is a capability in course context, it will be false in usercontext
|
||||
or isset($showuseridentityfields['email'])
|
||||
or $user->maildisplay == 1
|
||||
or ($user->maildisplay == 2 and enrol_sharing_course($user, $USER)))) {
|
||||
$userdetails['email'] = $user->email;
|
||||
@ -406,13 +412,17 @@ function user_get_user_details($user, $course = null, array $userfields = array(
|
||||
}
|
||||
|
||||
//Departement/Institution/Idnumber are not displayed on any profile, however you can get them from editing profile.
|
||||
if ($isadmin or $currentuser) {
|
||||
if (in_array('idnumber', $userfields) && $user->idnumber) {
|
||||
if ($isadmin or $currentuser or isset($showuseridentityfields['idnumber'])) {
|
||||
if (in_array('idnumber', $userfields) && $user->idnumber) {
|
||||
$userdetails['idnumber'] = $user->idnumber;
|
||||
}
|
||||
}
|
||||
if ($isadmin or $currentuser or isset($showuseridentityfields['institution'])) {
|
||||
if (in_array('institution', $userfields) && $user->institution) {
|
||||
$userdetails['institution'] = $user->institution;
|
||||
}
|
||||
}
|
||||
if ($isadmin or $currentuser or isset($showuseridentityfields['department'])) {
|
||||
if (in_array('department', $userfields) && isset($user->department)) { //isset because it's ok to have department 0
|
||||
$userdetails['department'] = $user->department;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user