In QueryPage: fixing a misleading comment. value needn't be numeric.
[lhc/web/wiklou.git] / includes / SpecialUserlogin.php
index 5c68b84..32799e5 100644 (file)
@@ -128,18 +128,6 @@ class LoginForm {
                global $wgMaxNameChars;
                global $wgMemc, $wgAccountCreationThrottle, $wgDBname, $wgIP;
 
-               if ( $wgAccountCreationThrottle ) {
-                       $key = "$wgDBname:acctcreate:ip:$wgIP";
-                       $value = $wgMemc->incr( $key );
-                       if ( !$value ) {
-                               $wgMemc->set( $key, 1, 86400 );
-                       }
-                       if ( $value > $wgAccountCreationThrottle ) {
-                               $this->throttleHit( $wgAccountCreationThrottle );
-                               return;
-                       }
-               }
-
                if (!$wgUser->isAllowedToCreateAccount()) {
                        $this->userNotPrivilegedMessage();
                        return;
@@ -170,6 +158,19 @@ class LoginForm {
                        $this->mainLoginForm( wfMsg( "userexists" ) );
                        return;
                }
+
+               if ( $wgAccountCreationThrottle ) {
+                       $key = "$wgDBname:acctcreate:ip:$wgIP";
+                       $value = $wgMemc->incr( $key );
+                       if ( !$value ) {
+                               $wgMemc->set( $key, 1, 86400 );
+                       }
+                       if ( $value > $wgAccountCreationThrottle ) {
+                               $this->throttleHit( $wgAccountCreationThrottle );
+                               return;
+                       }
+               }
+
                $u->addToDatabase();
                $u->setPassword( $this->mPassword );
                $u->setEmail( $this->mEmail );
@@ -201,12 +202,9 @@ class LoginForm {
                }
                $u->setId( $id );
                $u->loadFromDatabase();
-               $ep = $u->encryptPassword( $this->mPassword );
-               if ( 0 != strcmp( $ep, $u->getPassword() ) ) {
-                       if ( 0 != strcmp( $ep, $u->getNewpassword() ) ) {
-                               $this->mainLoginForm( wfMsg( "wrongpassword" ) );
-                               return;
-                       }
+               if (!$u->checkPassword( $this->mPassword )) {
+                       $this->mainLoginForm( wfMsg( "wrongpassword" ) );
+                       return;
                }
 
                # We've verified now, update the real record