summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/AllConfig.php15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/private/AllConfig.php b/lib/private/AllConfig.php
index 40a52b16628..45ed77e7888 100644
--- a/lib/private/AllConfig.php
+++ b/lib/private/AllConfig.php
@@ -260,6 +260,10 @@ class AllConfig implements \OCP\IConfig {
// TODO - FIXME
$this->fixDIInit();
+ if ($appName === 'core' && $key === 'email') {
+ $value = strtolower($value);
+ }
+
$prevValue = $this->getUserValue($userId, $appName, $key, null);
if ($prevValue !== null) {
@@ -514,17 +518,22 @@ class AllConfig implements \OCP\IConfig {
// TODO - FIXME
$this->fixDIInit();
+ if ($appName === 'core' && $key === 'email') {
+ // Email address is always stored lowercase in the database
+ return $this->getUsersForUserValue($appName, $key, strtolower($value));
+ }
+
$sql = 'SELECT `userid` FROM `*PREFIX*preferences` ' .
'WHERE `appid` = ? AND `configkey` = ? ';
if ($this->getSystemValue('dbtype', 'sqlite') === 'oci') {
//oracle hack: need to explicitly cast CLOB to CHAR for comparison
- $sql .= 'AND LOWER(to_char(`configvalue`)) = LOWER(?)';
+ $sql .= 'AND LOWER(to_char(`configvalue`)) = ?';
} else {
- $sql .= 'AND LOWER(`configvalue`) = LOWER(?)';
+ $sql .= 'AND LOWER(`configvalue`) = ?';
}
- $result = $this->connection->executeQuery($sql, [$appName, $key, $value]);
+ $result = $this->connection->executeQuery($sql, [$appName, $key, strtolower($value)]);
$userIDs = [];
while ($row = $result->fetch()) {