diff options
Diffstat (limited to 'includes/specials/SpecialPasswordReset.php')
-rw-r--r-- | includes/specials/SpecialPasswordReset.php | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/includes/specials/SpecialPasswordReset.php b/includes/specials/SpecialPasswordReset.php index d9faacca..3061c85b 100644 --- a/includes/specials/SpecialPasswordReset.php +++ b/includes/specials/SpecialPasswordReset.php @@ -62,9 +62,10 @@ class SpecialPasswordReset extends FormSpecialPage { } protected function getFormFields() { - global $wgPasswordResetRoutes, $wgAuth; + global $wgAuth; + $resetRoutes = $this->getConfig()->get( 'PasswordResetRoutes' ); $a = array(); - if ( isset( $wgPasswordResetRoutes['username'] ) && $wgPasswordResetRoutes['username'] ) { + if ( isset( $resetRoutes['username'] ) && $resetRoutes['username'] ) { $a['Username'] = array( 'type' => 'text', 'label-message' => 'passwordreset-username', @@ -75,14 +76,14 @@ class SpecialPasswordReset extends FormSpecialPage { } } - if ( isset( $wgPasswordResetRoutes['email'] ) && $wgPasswordResetRoutes['email'] ) { + if ( isset( $resetRoutes['email'] ) && $resetRoutes['email'] ) { $a['Email'] = array( 'type' => 'email', 'label-message' => 'passwordreset-email', ); } - if ( isset( $wgPasswordResetRoutes['domain'] ) && $wgPasswordResetRoutes['domain'] ) { + if ( isset( $resetRoutes['domain'] ) && $resetRoutes['domain'] ) { $domains = $wgAuth->domainList(); $a['Domain'] = array( 'type' => 'select', @@ -103,7 +104,7 @@ class SpecialPasswordReset extends FormSpecialPage { } public function alterForm( HTMLForm $form ) { - global $wgPasswordResetRoutes; + $resetRoutes = $this->getConfig()->get( 'PasswordResetRoutes' ); $form->setDisplayFormat( 'vform' ); // Turn the old-school line around the form off. @@ -112,14 +113,16 @@ class SpecialPasswordReset extends FormSpecialPage { // from a FormSpecialPage class. $form->setWrapperLegend( false ); + $form->addHiddenFields( $this->getRequest()->getValues( 'returnto', 'returntoquery' ) ); + $i = 0; - if ( isset( $wgPasswordResetRoutes['username'] ) && $wgPasswordResetRoutes['username'] ) { + if ( isset( $resetRoutes['username'] ) && $resetRoutes['username'] ) { $i++; } - if ( isset( $wgPasswordResetRoutes['email'] ) && $wgPasswordResetRoutes['email'] ) { + if ( isset( $resetRoutes['email'] ) && $resetRoutes['email'] ) { $i++; } - if ( isset( $wgPasswordResetRoutes['domain'] ) && $wgPasswordResetRoutes['domain'] ) { + if ( isset( $resetRoutes['domain'] ) && $resetRoutes['domain'] ) { $i++; } @@ -133,10 +136,10 @@ class SpecialPasswordReset extends FormSpecialPage { * Process the form. At this point we know that the user passes all the criteria in * userCanExecute(), and if the data array contains 'Username', etc, then Username * resets are allowed. - * @param $data array + * @param array $data * @throws MWException * @throws ThrottledError|PermissionsError - * @return Bool|Array + * @return bool|array */ public function onSubmit( array $data ) { global $wgAuth; @@ -220,19 +223,16 @@ class SpecialPasswordReset extends FormSpecialPage { // Check against password throttle foreach ( $users as $user ) { if ( $user->isPasswordReminderThrottled() ) { - global $wgPasswordReminderResendTime; # Round the time in hours to 3 d.p., in case someone is specifying # minutes or seconds. return array( array( 'throttled-mailpassword', - round( $wgPasswordReminderResendTime, 3 ) + round( $this->getConfig()->get( 'PasswordReminderResendTime' ), 3 ) ) ); } } - global $wgNewPasswordExpiry; - // All the users will have the same email address if ( $firstUser->getEmail() == '' ) { // This won't be reachable from the email route, so safe to expose the username @@ -271,12 +271,12 @@ class SpecialPasswordReset extends FormSpecialPage { $passwordBlock, count( $passwords ), '<' . Title::newMainPage()->getCanonicalURL() . '>', - round( $wgNewPasswordExpiry / 86400 ) + round( $this->getConfig()->get( 'NewPasswordExpiry' ) / 86400 ) ); $title = $this->msg( 'passwordreset-emailtitle' ); - $this->result = $firstUser->sendMail( $title->escaped(), $this->email->text() ); + $this->result = $firstUser->sendMail( $title->text(), $this->email->text() ); if ( isset( $data['Capture'] ) && $data['Capture'] ) { // Save the user, will be used if an error occurs when sending the email @@ -318,11 +318,12 @@ class SpecialPasswordReset extends FormSpecialPage { } protected function canChangePassword( User $user ) { - global $wgPasswordResetRoutes, $wgEnableEmail, $wgAuth; + global $wgAuth; + $resetRoutes = $this->getConfig()->get( 'PasswordResetRoutes' ); // Maybe password resets are disabled, or there are no allowable routes - if ( !is_array( $wgPasswordResetRoutes ) || - !in_array( true, array_values( $wgPasswordResetRoutes ) ) + if ( !is_array( $resetRoutes ) || + !in_array( true, array_values( $resetRoutes ) ) ) { return 'passwordreset-disabled'; } @@ -333,7 +334,7 @@ class SpecialPasswordReset extends FormSpecialPage { } // Maybe email features have been disabled - if ( !$wgEnableEmail ) { + if ( !$this->getConfig()->get( 'EnableEmail' ) ) { return 'passwordreset-emaildisabled'; } @@ -348,7 +349,7 @@ class SpecialPasswordReset extends FormSpecialPage { /** * Hide the password reset page if resets are disabled. - * @return Bool + * @return bool */ function isListed() { if ( $this->canChangePassword( $this->getUser() ) === true ) { |