more specific error message, using WikiError, if user trys to create account with...
authorKatie Filbert <aude@users.mediawiki.org>
Thu, 22 Oct 2009 16:54:50 +0000 (16:54 +0000)
committerKatie Filbert <aude@users.mediawiki.org>
Thu, 22 Oct 2009 16:54:50 +0000 (16:54 +0000)
includes/User.php
includes/specials/SpecialUserlogin.php

index 2cb0203..fd97f3b 100644 (file)
@@ -354,8 +354,10 @@ class User {
                        $validate = 'valid';
                }
                $name = self::getCanonicalName( $name, $validate );
-               if ( $name === false ) {
-                       return null;
+               if ( WikiError::isError( $name ) ) {
+                       return $name;
+               } elseif ( $name === false ) {
+                       return false;
                } else {
                        # Create unloaded user object
                        $u = new User;
@@ -693,7 +695,7 @@ class User {
                # with title normalisation, but then it's too late to
                # check elsewhere
                if( strpos( $name, '#' ) !== false )
-                       return false;
+                       return new WikiError( 'usernamehasherror' );
 
                # Clean up name according to title rules
                $t = ( $validate === 'valid' ) ?
index f8be43b..5297964 100644 (file)
@@ -267,6 +267,11 @@ class LoginForm {
                # Now create a dummy user ($u) and check if it is valid
                $name = trim( $this->mName );
                $u = User::newFromName( $name, 'creatable' );
+               if ( WikiError::isError( $u ) ) {
+                       $this->mainLoginForm( wfMsg( $u->getMessage() ) );
+                       return false;
+               }
+
                if ( is_null( $u ) ) {
                        $this->mainLoginForm( wfMsg( 'noname' ) );
                        return false;