]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix issue with login being case insensitve
authorRobin Appelman <icewind1991@gmail.com>
Thu, 25 Aug 2011 19:51:04 +0000 (21:51 +0200)
committerRobin Appelman <icewind1991@gmail.com>
Thu, 25 Aug 2011 19:51:13 +0000 (21:51 +0200)
lib/user.php
lib/user/database.php

index e53ba145c9e33acf6c7a7e1fce7f067409c4105f..0630ebb93848d233a6266530559b8246d9bcaf25 100644 (file)
@@ -191,13 +191,17 @@ class OC_User {
                $run = true;
                OC_Hook::emit( "OC_User", "pre_login", array( "run" => &$run, "uid" => $uid ));
 
-               if( $run && self::checkPassword( $uid, $password )){
-                       $_SESSION['user_id'] = $uid;
-                       OC_Crypt::init($uid,$password);
-                       OC_Hook::emit( "OC_User", "post_login", array( "uid" => $uid ));
-                       return true;
-               }
-               else{
+               if( $run ){
+                       $uid=self::checkPassword( $uid, $password );
+                       if($uid){
+                               $_SESSION['user_id'] = $uid;
+                               OC_Crypt::init($uid,$password);
+                               OC_Hook::emit( "OC_User", "post_login", array( "uid" => $uid ));
+                               return true;
+                       }else{
+                               return false;
+                       }
+               }else{
                        return false;
                }
        }
@@ -292,8 +296,8 @@ class OC_User {
                foreach(self::$_usedBackends as $backend){
                        if($backend->implementsActions(OC_USER_BACKEND_CHECK_PASSWORD)){
                                $result=$backend->checkPassword( $uid, $password );
-                               if($result===true){
-                                       return true;
+                               if($result){
+                                       return $result;
                                }
                        }
                }
index 4992c2aa1649c4c6702cde3d3a923220b102b463..f29aaf00f05ec84926532029055360162af67a52 100644 (file)
@@ -103,13 +103,13 @@ class OC_User_Database extends OC_User_Backend {
         * Check if the password is correct without logging in the user
         */
        public function checkPassword( $uid, $password ){
-               $query = OC_DB::prepare( "SELECT uid FROM *PREFIX*users WHERE uid = ? AND password = ?" );
+               $query = OC_DB::prepare( "SELECT uid FROM *PREFIX*users WHERE uid LIKE ? AND password = ?" );
                $result = $query->execute( array( $uid, sha1( $password )));
 
                if( $result->numRows() > 0 ){
-                       return true;
-               }
-               else{
+                       $row=$result->fetchRow();
+                       return $row['uid'];
+               }else{
                        return false;
                }
        }