From df95e790ba49464dd6b093f0c45777288f738d7d Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 18 Oct 2012 03:52:45 -0400
Subject: [PATCH] Remove automatic to-lowercase conversion of usernames (#1488715)

---
 program/include/rcmail.php |   20 +++++---------------
 1 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index ec3d537..0c2bf64 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -452,6 +452,10 @@
         $username .= '@'.rcube_utils::parse_host($config['username_domain'], $host);
     }
 
+    if (!isset($config['login_lc'])) {
+      $config['login_lc'] = 2; // default
+    }
+
     // Convert username to lowercase. If storage backend
     // is case-insensitive we need to store always the same username (#1487113)
     if ($config['login_lc']) {
@@ -483,21 +487,7 @@
     $storage = $this->get_storage();
 
     // try to log in
-    if (!($login = $storage->connect($host, $username, $pass, $port, $ssl))) {
-      // try with lowercase
-      $username_lc = mb_strtolower($username);
-      if ($username_lc != $username) {
-        // try to find user record again -> overwrite username
-        if (!$user && ($user = rcube_user::query($username_lc, $host)))
-          $username_lc = $user->data['username'];
-
-        if ($login = $storage->connect($host, $username_lc, $pass, $port, $ssl))
-          $username = $username_lc;
-      }
-    }
-
-    // exit if login failed
-    if (!$login) {
+    if (!$storage->connect($host, $username, $pass, $port, $ssl)) {
       return false;
     }
 

--
Gitblit v1.9.1