From c2004a795254f31492cd3c9fa341d288a9cdb9e4 Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Thu, 4 Oct 2012 11:43:33 +0100 Subject: [PATCH 1/5] MDL-34657 user sort: exact match logic should be case-insensitive. --- lib/datalib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/datalib.php b/lib/datalib.php index 2167d665762..4e47268c417 100644 --- a/lib/datalib.php +++ b/lib/datalib.php @@ -252,7 +252,7 @@ function users_order_by_sql($usertablealias = '', $search = null, context $conte $fieldstocheck = array_merge(array('firstname', 'lastname'), get_extra_user_fields($context)); foreach ($fieldstocheck as $key => $field) { - $exactconditions[] = $tableprefix . $field . ' = :' . $paramkey; + $exactconditions[] = 'LOWER(' . $tableprefix . $field . ') = LOWER(:' . $paramkey . ')'; $params[$paramkey] = $search; $paramkey++; } From d0577078fa97ffd96c692946593644937620f62d Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Thu, 4 Oct 2012 11:44:50 +0100 Subject: [PATCH 2/5] MDL-34657 system admins: main admin mis-identified in the UI. --- admin/roles/lib.php | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/admin/roles/lib.php b/admin/roles/lib.php index 078d2efc8a1..5765cf59ae6 100644 --- a/admin/roles/lib.php +++ b/admin/roles/lib.php @@ -1596,13 +1596,10 @@ class admins_existing_selector extends user_selector_base { } $mainadmin = array(); - $adminids = explode(',', $CFG->siteadmins); - foreach ($adminids as $id) { - if (isset($availableusers[$id])) { - $mainadmin = array($id=>$availableusers[$id]); - unset($availableusers[$id]); - break; - } + $mainadminuser = get_admin(); + if ($mainadminuser && isset($availableusers[$mainadminuser->id])) { + $mainadmin = array($mainadminuser->id => $availableusers[$mainadminuser->id]); + unset($availableusers[$mainadminuser->id]); } $result = array(); From 70f5ed370f61bc833c862f3d8403aa62e1be170d Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Thu, 4 Oct 2012 11:45:56 +0100 Subject: [PATCH 3/5] MDL-34657 gropus UI: sort existing group memebers. --- user/selector/lib.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/user/selector/lib.php b/user/selector/lib.php index 52b1b1bf7df..04d6924f237 100644 --- a/user/selector/lib.php +++ b/user/selector/lib.php @@ -735,9 +735,14 @@ abstract class groups_user_selector_base extends user_selector_base { class group_members_selector extends groups_user_selector_base { public function find_users($search) { list($wherecondition, $params) = $this->search_sql($search, 'u'); + + list($sort, $sortparams) = users_order_by_sql('u', $search, $this->accesscontext); + $orderby = ' ORDER BY ' . $sort; + $roles = groups_get_members_by_role($this->groupid, $this->courseid, $this->required_fields_sql('u') . ', gm.component', - null, $wherecondition, $params); + $sort, $wherecondition, array_merge($params, $sortparams)); + return $this->convert_array_format($roles, $search); } } From e451c11616b58dd2fcb2dbb1547c2ac832988503 Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Thu, 4 Oct 2012 11:47:04 +0100 Subject: [PATCH 4/5] MDL-34657 workshop / user sorting: fix SQL regression. --- mod/workshop/locallib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/workshop/locallib.php b/mod/workshop/locallib.php index b42b4c68a3a..000f093dc42 100644 --- a/mod/workshop/locallib.php +++ b/mod/workshop/locallib.php @@ -500,7 +500,7 @@ class workshop { return array(); } - list($sort, $sortparams) = users_order_by_sql('u'); + list($sort, $sortparams) = users_order_by_sql(); $sql .= " ORDER BY $sort"; return $DB->get_records_sql($sql, array_merge($params, $sortparams), $limitfrom, $limitnum); From 965d1670681f3dfe67133898ff9124b5890718ae Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Thu, 4 Oct 2012 11:47:39 +0100 Subject: [PATCH 5/5] MDL-34657 stats / user sorting: fix SQL regression. --- report/stats/locallib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/report/stats/locallib.php b/report/stats/locallib.php index bde2b0d6a0c..5eb60c29b0a 100644 --- a/report/stats/locallib.php +++ b/report/stats/locallib.php @@ -111,7 +111,7 @@ function report_stats_report($course, $report, $mode, $user, $roleid, $time) { list($sort, $moreparams) = users_order_by_sql('u'); $moreparams['courseid'] = $course->id; - $sql = "SELECT DISTINCT s.userid, u.firstname, u.lastname, u.idnumber + $sql = "SELECT DISTINCT u.id, u.firstname, u.lastname, u.idnumber FROM {stats_user_{$param->table}} s JOIN {user} u ON u.id = s.userid WHERE courseid = :courseid";