From 2afee18b3447f05c90bceaff4c833cae0cdd1356 Mon Sep 17 00:00:00 2001 From: David Castro Date: Fri, 15 Mar 2019 12:09:43 -0500 Subject: [PATCH] MDL-65089 glossary: Enforcing case comparison in SQL. --- mod/glossary/lib.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mod/glossary/lib.php b/mod/glossary/lib.php index 65ab0b345aa..c0b44d147de 100644 --- a/mod/glossary/lib.php +++ b/mod/glossary/lib.php @@ -1019,7 +1019,7 @@ function glossary_get_entries($glossaryid, $entrylist, $pivot = "") { * @return array */ function glossary_get_entries_search($concept, $courseid) { - global $CFG, $DB; + global $DB; //Check if the user is an admin $bypassadmin = 1; //This means NO (by default) @@ -1036,6 +1036,7 @@ function glossary_get_entries_search($concept, $courseid) { $conceptlower = core_text::strtolower(trim($concept)); $params = array('courseid1'=>$courseid, 'courseid2'=>$courseid, 'conceptlower'=>$conceptlower, 'concept'=>$concept); + $sensitiveconceptsql = $DB->sql_equal('concept', ':concept'); return $DB->get_records_sql("SELECT e.*, g.name as glossaryname, cm.id as cmid, cm.course as courseid FROM {glossary_entries} e, {glossary} g, @@ -1047,7 +1048,7 @@ function glossary_get_entries_search($concept, $courseid) { g.id = cm.instance AND e.glossaryid = g.id AND ( (e.casesensitive != 1 AND LOWER(concept) = :conceptlower) OR - (e.casesensitive = 1 and concept = :concept)) AND + (e.casesensitive = 1 and $sensitiveconceptsql)) AND (g.course = :courseid2 OR g.globalglossary = 1) AND e.usedynalink != 0 AND g.usedynalink != 0", $params);