Merge branch 'MDL-31923-MOODLE_21_STABLE-1' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE
This commit is contained in:
+50
-27
@@ -757,24 +757,21 @@ class course_enrolment_manager {
|
||||
* @return array
|
||||
*/
|
||||
public function get_other_users_for_display(core_enrol_renderer $renderer, moodle_url $pageurl, $sort, $direction, $page, $perpage) {
|
||||
|
||||
global $CFG;
|
||||
$userroles = $this->get_other_users($sort, $direction, $page, $perpage);
|
||||
$roles = $this->get_all_roles();
|
||||
|
||||
$courseid = $this->get_course()->id;
|
||||
$context = $this->get_context();
|
||||
$now = time();
|
||||
$extrafields = array();
|
||||
if (!empty($CFG->extrauserselectorfields)) {
|
||||
$extrafields = explode(',', $CFG->extrauserselectorfields);
|
||||
}
|
||||
|
||||
$users = array();
|
||||
foreach ($userroles as $userrole) {
|
||||
if (!array_key_exists($userrole->id, $users)) {
|
||||
$users[$userrole->id] = array(
|
||||
'userid' => $userrole->id,
|
||||
'courseid' => $courseid,
|
||||
'picture' => new user_picture($userrole),
|
||||
'firstname' => fullname($userrole, true),
|
||||
'email' => $userrole->email,
|
||||
'roles' => array()
|
||||
);
|
||||
$users[$userrole->id] = $this->prepare_user_for_display($userrole, $extrafields, $now);
|
||||
}
|
||||
$a = new stdClass;
|
||||
$a->role = $roles[$userrole->roleid]->localname;
|
||||
@@ -797,6 +794,7 @@ class course_enrolment_manager {
|
||||
break;
|
||||
}
|
||||
}
|
||||
$users[$userrole->id]['roles'] = array();
|
||||
$users[$userrole->id]['roles'][$userrole->roleid] = array(
|
||||
'text' => $roletext,
|
||||
'unchangeable' => !$changeable
|
||||
@@ -818,11 +816,11 @@ class course_enrolment_manager {
|
||||
* @return array
|
||||
*/
|
||||
public function get_users_for_display(course_enrolment_manager $manager, $sort, $direction, $page, $perpage) {
|
||||
global $CFG;
|
||||
$pageurl = $manager->get_moodlepage()->url;
|
||||
$users = $this->get_users($sort, $direction, $page, $perpage);
|
||||
|
||||
$now = time();
|
||||
$strnever = get_string('never');
|
||||
$straddgroup = get_string('addgroup', 'group');
|
||||
$strunenrol = get_string('unenrol', 'enrol');
|
||||
$stredit = get_string('edit');
|
||||
@@ -830,42 +828,34 @@ class course_enrolment_manager {
|
||||
$allroles = $this->get_all_roles();
|
||||
$assignable = $this->get_assignable_roles();
|
||||
$allgroups = $this->get_all_groups();
|
||||
$courseid = $this->get_course()->id;
|
||||
$context = $this->get_context();
|
||||
$canmanagegroups = has_capability('moodle/course:managegroups', $context);
|
||||
|
||||
$url = new moodle_url($pageurl, $this->get_url_params());
|
||||
$extrafields = array();
|
||||
if (!empty($CFG->extrauserselectorfields)) {
|
||||
$extrafields = explode(',', $CFG->extrauserselectorfields);
|
||||
}
|
||||
|
||||
$userdetails = array();
|
||||
foreach ($users as $user) {
|
||||
$details = array(
|
||||
'userid' => $user->id,
|
||||
'courseid' => $courseid,
|
||||
'picture' => new user_picture($user),
|
||||
'firstname' => fullname($user, true),
|
||||
'email' => $user->email,
|
||||
'lastseen' => $strnever,
|
||||
'roles' => array(),
|
||||
'groups' => array(),
|
||||
'enrolments' => array()
|
||||
);
|
||||
|
||||
if ($user->lastaccess) {
|
||||
$details['lastseen'] = format_time($now - $user->lastaccess);
|
||||
}
|
||||
$details = $this->prepare_user_for_display($user, $extrafields, $now);
|
||||
|
||||
// Roles
|
||||
$details['roles'] = array();
|
||||
foreach ($this->get_user_roles($user->id) as $rid=>$rassignable) {
|
||||
$details['roles'][$rid] = array('text'=>$allroles[$rid]->localname, 'unchangeable'=>(!$rassignable || !isset($assignable[$rid])));
|
||||
}
|
||||
|
||||
// Users
|
||||
$usergroups = $this->get_user_groups($user->id);
|
||||
$details['groups'] = array();
|
||||
foreach($usergroups as $gid=>$unused) {
|
||||
$details['groups'][$gid] = $allgroups[$gid]->name;
|
||||
}
|
||||
|
||||
// Enrolments
|
||||
$details['enrolments'] = array();
|
||||
foreach ($this->get_user_enrolments($user->id) as $ue) {
|
||||
if ($ue->timestart and $ue->timeend) {
|
||||
$period = get_string('periodstartend', 'enrol', array('start'=>userdate($ue->timestart), 'end'=>userdate($ue->timeend)));
|
||||
@@ -892,6 +882,39 @@ class course_enrolment_manager {
|
||||
return $userdetails;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare a user record for display
|
||||
*
|
||||
* This function is called by both {@link get_users_for_display} and {@link get_other_users_for_display} to correctly
|
||||
* prepare user fields for display
|
||||
*
|
||||
* Please note that this function does not check capability for moodle/coures:viewhiddenuserfields
|
||||
*
|
||||
* @param object $user The user record
|
||||
* @param array $extrafields The list of fields as returned from get_extra_user_fields used to determine which
|
||||
* additional fields may be displayed
|
||||
* @param int $now The time used for lastaccess calculation
|
||||
* @return array The fields to be displayed including userid, courseid, picture, firstname, lastseen and any
|
||||
* additional fields from $extrafields
|
||||
*/
|
||||
private function prepare_user_for_display($user, $extrafields, $now) {
|
||||
$details = array(
|
||||
'userid' => $user->id,
|
||||
'courseid' => $this->get_course()->id,
|
||||
'picture' => new user_picture($user),
|
||||
'firstname' => fullname($user, has_capability('moodle/site:viewfullnames', $this->get_context())),
|
||||
'lastseen' => get_string('never'),
|
||||
);
|
||||
foreach ($extrafields as $field) {
|
||||
$details[$field] = $user->{$field};
|
||||
}
|
||||
|
||||
if ($user->lastaccess) {
|
||||
$details['lastseen'] = format_time($now - $user->lastaccess);
|
||||
}
|
||||
return $details;
|
||||
}
|
||||
|
||||
public function get_manual_enrol_buttons() {
|
||||
$plugins = $this->get_enrolment_plugins();
|
||||
$buttons = array();
|
||||
|
||||
+21
-22
@@ -48,33 +48,32 @@ $manager = new course_enrolment_manager($PAGE, $course, $filter);
|
||||
$table = new course_enrolment_other_users_table($manager, $PAGE);
|
||||
$PAGE->set_url('/enrol/otherusers.php', $manager->get_url_params()+$table->get_url_params());
|
||||
|
||||
/***
|
||||
* Actions will go here
|
||||
*/
|
||||
$userdetails = array (
|
||||
'picture' => false,
|
||||
'firstname' => get_string('firstname'),
|
||||
'lastname' => get_string('lastname'),
|
||||
);
|
||||
if (!empty($CFG->extrauserselectorfields)) {
|
||||
$extrafields = explode(',', $CFG->extrauserselectorfields);
|
||||
foreach ($extrafields as $field) {
|
||||
$userdetails[$field] = get_string($field);
|
||||
}
|
||||
}
|
||||
|
||||
/*$fields = array(
|
||||
'userdetails' => array (
|
||||
'picture' => false,
|
||||
'firstname' => get_string('firstname'),
|
||||
'lastname' => get_string('lastname'),
|
||||
'email' => get_string('email')
|
||||
),
|
||||
'lastseen' => get_string('lastaccess'),
|
||||
'role' => array(
|
||||
'roles' => get_string('roles', 'role'),
|
||||
'context' => get_string('context')
|
||||
)
|
||||
);*/
|
||||
$fields = array(
|
||||
'userdetails' => array (
|
||||
'picture' => false,
|
||||
'firstname' => get_string('firstname'),
|
||||
'lastname' => get_string('lastname'),
|
||||
'email' => get_string('email')
|
||||
),
|
||||
'userdetails' => $userdetails,
|
||||
'lastseen' => get_string('lastaccess'),
|
||||
'role' => get_string('roles', 'role')
|
||||
);
|
||||
|
||||
// Remove hidden fields if the user has no access
|
||||
if (!has_capability('moodle/course:viewhiddenuserfields', $context)) {
|
||||
$hiddenfields = array_flip(explode(',', $CFG->hiddenuserfields));
|
||||
if (isset($hiddenfields['lastaccess'])) {
|
||||
unset($fields['lastseen']);
|
||||
}
|
||||
}
|
||||
|
||||
$table->set_fields($fields, $OUTPUT);
|
||||
|
||||
//$users = $manager->get_other_users($table->sort, $table->sortdirection, $table->page, $table->perpage);
|
||||
|
||||
+26
-7
@@ -166,18 +166,37 @@ if ($action) {
|
||||
|
||||
|
||||
$renderer = $PAGE->get_renderer('core_enrol');
|
||||
|
||||
$userdetails = array (
|
||||
'picture' => false,
|
||||
'firstname' => get_string('firstname'),
|
||||
'lastname' => get_string('lastname'),
|
||||
);
|
||||
if (!empty($CFG->extrauserselectorfields)) {
|
||||
$extrafields = explode(',', $CFG->extrauserselectorfields);
|
||||
foreach ($extrafields as $field) {
|
||||
$userdetails[$field] = get_string($field);
|
||||
}
|
||||
}
|
||||
$fields = array(
|
||||
'userdetails' => array (
|
||||
'picture' => false,
|
||||
'firstname' => get_string('firstname'),
|
||||
'lastname' => get_string('lastname'),
|
||||
'email' => get_string('email')
|
||||
),
|
||||
'userdetails' => $userdetails,
|
||||
'lastseen' => get_string('lastaccess'),
|
||||
'role' => get_string('roles', 'role'),
|
||||
'group' => get_string('groups', 'group'),
|
||||
'enrol' => get_string('enrolmentinstances', 'enrol')
|
||||
);
|
||||
|
||||
// Remove hidden fields if the user has no access
|
||||
if (!has_capability('moodle/course:viewhiddenuserfields', $context)) {
|
||||
$hiddenfields = array_flip(explode(',', $CFG->hiddenuserfields));
|
||||
if (isset($hiddenfields['lastaccess'])) {
|
||||
unset($fields['lastseen']);
|
||||
}
|
||||
if (isset($hiddenfields['groups'])) {
|
||||
unset($fields['group']);
|
||||
}
|
||||
}
|
||||
|
||||
$table->set_fields($fields, $renderer);
|
||||
|
||||
$canassign = has_capability('moodle/role:assign', $manager->get_context());
|
||||
@@ -197,4 +216,4 @@ $PAGE->set_heading($PAGE->title);
|
||||
echo $OUTPUT->header();
|
||||
echo $OUTPUT->heading(get_string('enrolledusers', 'enrol'));
|
||||
echo $renderer->render($table);
|
||||
echo $OUTPUT->footer();
|
||||
echo $OUTPUT->footer();
|
||||
|
||||
Reference in New Issue
Block a user