Merge "TitleInputWidget: Correct links when 'relative' option used"
[lhc/web/wiklou.git] / includes / specials / SpecialUserlogin.php
index 64a6f72..4ca07fe 100644 (file)
@@ -453,8 +453,7 @@ class LoginForm extends SpecialPage {
         * @return Status
         */
        public function addNewAccountInternal() {
-               global $wgAuth, $wgMemc, $wgAccountCreationThrottle,
-                       $wgMinimalPasswordLength, $wgEmailConfirmToEdit;
+               global $wgAuth, $wgMemc, $wgAccountCreationThrottle, $wgEmailConfirmToEdit;
 
                // If the user passes an invalid domain, something is fishy
                if ( !$wgAuth->validDomain( $this->mDomain ) ) {
@@ -530,9 +529,9 @@ class LoginForm extends SpecialPage {
 
                # Now create a dummy user ($u) and check if it is valid
                $u = User::newFromName( $this->mUsername, 'creatable' );
-               if ( !is_object( $u ) ) {
+               if ( !$u ) {
                        return Status::newFatal( 'noname' );
-               } elseif ( 0 != $u->idForName() ) {
+               } elseif ( 0 != $u->idForName( User::READ_LOCKING ) ) {
                        return Status::newFatal( 'userexists' );
                }
 
@@ -546,7 +545,7 @@ class LoginForm extends SpecialPage {
                        }
 
                        # check for password validity, return a fatal Status if invalid
-                       $validity = $u->checkPasswordValidity( $this->mPassword );
+                       $validity = $u->checkPasswordValidity( $this->mPassword, 'create' );
                        if ( !$validity->isGood() ) {
                                $validity->ok = false; // make sure this Status is fatal
                                return $validity;
@@ -949,7 +948,10 @@ class LoginForm extends SpecialPage {
                                        } elseif ( $wgInvalidPasswordReset
                                                && !$user->isValidPassword( $this->mPassword )
                                        ) {
-                                               $status = $user->checkPasswordValidity( $this->mPassword );
+                                               $status = $user->checkPasswordValidity(
+                                                       $this->mPassword,
+                                                       'login'
+                                               );
                                                $this->resetLoginForm(
                                                        $status->getMessage( 'resetpass-validity-soft' )
                                                );
@@ -1283,8 +1285,9 @@ class LoginForm extends SpecialPage {
        function mainLoginForm( $msg, $msgtype = 'error' ) {
                global $wgEnableEmail, $wgEnableUserEmail;
                global $wgHiddenPrefs, $wgLoginLanguageSelector;
-               global $wgAuth, $wgEmailConfirmToEdit, $wgCookieExpiration;
+               global $wgAuth, $wgEmailConfirmToEdit;
                global $wgSecureLogin, $wgPasswordResetRoutes;
+               global $wgExtendedLoginCookieExpiration, $wgCookieExpiration;
 
                $titleObj = $this->getPageTitle();
                $user = $this->getUser();
@@ -1407,7 +1410,7 @@ class LoginForm extends SpecialPage {
                $template->set( 'emailothers', $wgEnableUserEmail );
                $template->set( 'canreset', $wgAuth->allowPasswordChange() );
                $template->set( 'resetlink', $resetLink );
-               $template->set( 'canremember', ( $wgCookieExpiration > 0 ) );
+               $template->set( 'canremember', $wgExtendedLoginCookieExpiration === null ? ( $wgCookieExpiration > 0 ) : ( $wgExtendedLoginCookieExpiration > 0 ) );
                $template->set( 'usereason', $user->isLoggedIn() );
                $template->set( 'remember', $this->mRemember );
                $template->set( 'cansecurelogin', ( $wgSecureLogin === true ) );
@@ -1529,7 +1532,6 @@ class LoginForm extends SpecialPage {
         */
        public static function getCreateaccountToken() {
                global $wgRequest;
-
                return $wgRequest->getSessionData( 'wsCreateaccountToken' );
        }
 
@@ -1604,22 +1606,21 @@ class LoginForm extends SpecialPage {
         */
        function makeLanguageSelector() {
                $msg = $this->msg( 'loginlanguagelinks' )->inContentLanguage();
-               if ( !$msg->isBlank() ) {
-                       $langs = explode( "\n", $msg->text() );
-                       $links = array();
-                       foreach ( $langs as $lang ) {
-                               $lang = trim( $lang, '* ' );
-                               $parts = explode( '|', $lang );
-                               if ( count( $parts ) >= 2 ) {
-                                       $links[] = $this->makeLanguageSelectorLink( $parts[0], trim( $parts[1] ) );
-                               }
-                       }
-
-                       return count( $links ) > 0 ? $this->msg( 'loginlanguagelabel' )->rawParams(
-                               $this->getLanguage()->pipeList( $links ) )->escaped() : '';
-               } else {
+               if ( $msg->isBlank() ) {
                        return '';
                }
+               $langs = explode( "\n", $msg->text() );
+               $links = array();
+               foreach ( $langs as $lang ) {
+                       $lang = trim( $lang, '* ' );
+                       $parts = explode( '|', $lang );
+                       if ( count( $parts ) >= 2 ) {
+                               $links[] = $this->makeLanguageSelectorLink( $parts[0], trim( $parts[1] ) );
+                       }
+               }
+
+               return count( $links ) > 0 ? $this->msg( 'loginlanguagelabel' )->rawParams(
+                       $this->getLanguage()->pipeList( $links ) )->escaped() : '';
        }
 
        /**