* to ensure that client-side caches don't keep obsolete copies of global
* styles.
*/
-$wgStyleVersion = '206';
+$wgStyleVersion = '207';
# Server-side caching:
'patrol',
'merge',
'suppress',
+ 'password',
);
/**
'patrol' => 'patrol-log-page',
'merge' => 'mergelog',
'suppress' => 'suppressionlog',
+ 'password' => 'resetpass-log'
);
/**
'patrol' => 'patrol-log-header',
'merge' => 'mergelogpagetext',
'suppress' => 'suppressionlogtext',
+ 'password' => 'resetpass-logtext',
);
/**
'suppress/delete' => 'suppressedarticle',
'suppress/block' => 'blocklogentry',
'suppress/reblock' => 'reblock-logentry',
+ 'password/reset' => 'resetpass-logentry'
);
/**
$this->mOldpass = $wgRequest->getVal( 'wpPassword' );
$this->mNewpass = $wgRequest->getVal( 'wpNewPassword' );
$this->mRetype = $wgRequest->getVal( 'wpRetype' );
+ $this->mComment = $wgRequest->getVal( 'wpComment' );
$this->setHeaders();
$this->outputHeader();
global $wgOut, $wgUser, $wgRequest;
$wgOut->disallowUserJs();
+
+ if ( $wgUser->isAllowed( 'reset-passwords') ) {
+ $wgOut->addScriptFile( 'changepassword.js' );
+ }
$self = SpecialPage::getTitleFor( 'Resetpass' );
$oldpassMsg = 'oldpassword';
$submitMsg = 'resetpass-submit-loggedin';
}
- $wgOut->addHTML(
- Xml::fieldset( wfMsg( 'resetpass_header' ) ) .
+ $s = Xml::fieldset( wfMsg( 'resetpass_header' ) ) .
Xml::openElement( 'form',
array(
'method' => 'post',
Xml::hidden( 'token', $wgUser->editToken() ) .
Xml::hidden( 'returnto', $wgRequest->getVal( 'returnto' ) ) .
wfMsgExt( 'resetpass_text', array( 'parse' ) ) .
- Xml::openElement( 'table', array( 'id' => 'mw-resetpass-table' ) ) .
- $this->pretty( array(
+ Xml::openElement( 'table', array( 'id' => 'mw-resetpass-table' ) );
+ $formElements = array(
array( 'wpName', 'username', 'text', $this->mUserName, $wgUser->isAllowed( 'reset-passwords' ) ),
array( 'wpPassword', $oldpassMsg, 'password', $this->mOldpass, $this->mSelfChange ),
array( 'wpNewPassword', 'newpassword', 'password', '', true ),
- array( 'wpRetype', 'retypenew', 'password', '', true ),
- ) ) .
+ array( 'wpRetype', 'retypenew', 'password', '', true ) );
+ if ( $wgUser->isAllowed( 'reset-passwords' ) && $this->mSelfChange )
+ $formElements[] = array( 'wpComment', 'resetpass-comment', 'text', $this->mComment, true );
+ $s .= $this->pretty( $formElements ) .
$rememberMe .
'<tr>' .
'<td></td>' .
'</tr>' .
Xml::closeElement( 'table' ) .
Xml::closeElement( 'form' ) .
- Xml::closeElement( 'fieldset' )
- );
+ Xml::closeElement( 'fieldset' );
+ $wgOut->addHtml( $s );
}
function pretty( $fields ) {
throw new PasswordError( wfMsg( 'resetpass-wrong-oldpass' ) );
}
}
-
+
try {
$user->setPassword( $this->mNewpass );
wfRunHooks( 'PrefsPasswordAudit', array( $user, $newpass, 'success' ) );
return;
}
+ if ( !$this->mSelfChange ) {
+ $log = new LogPage( 'password' );
+ $log->addEntry( 'reset', $user->getUserPage(), $this->mComment );
+ }
+
$user->setCookies();
$user->saveSettings();
}
You may have already successfully changed your password or requested a new temporary password.',
'resetpass-temp-password' => 'Temporary password:',
'resetpass-no-others' => 'You cannot reset the password for other users.',
+'resetpass-log' => 'Password resets',
+'resetpass-logtext' => 'Below is a log of users who have had their password reset by a bureaucrat',
+'resetpass-logentry' => 'changed the password for $1',
+'resetpass-comment' => 'Reason for password reset',
# Edit page toolbar
'bold_sample' => 'Bold text',
--- /dev/null
+\r
+function onNameChange() {\r
+ if ( wgUserName != document.getElementById('wpName').value ) {\r
+ document.getElementById('wpPassword').disabled = true;\r
+ document.getElementById('wpComment').disabled = false;\r
+ } else {\r
+ document.getElementById('wpPassword').disabled = false;\r
+ document.getElementById('wpComment').disabled = true;\r
+ }\r
+}\r
+\r
+function onNameChangeHook() {\r
+ document.getElementById( 'wpName' ).onblur = onNameChange;\r
+}\r
+\r
+addOnloadHook( onNameChangeHook );\r
+\r
+function onNameChange() {\r
+ if ( wgUserName != document.getElementById('wpName').value ) {\r
+ document.getElementById('wpPassword').disabled = true;\r
+ document.getElementById('wpComment').disabled = false;\r
+ } else {\r
+ document.getElementById('wpPassword').disabled = false;\r
+ document.getElementById('wpComment').disabled = true;\r
+ }\r
+}\r
+\r
+function onNameChangeHook() {\r
+ document.getElementById( 'wpName' ).onblur = onNameChange;\r
+}\r
+\r
+addOnloadHook( onNameChangeHook );\r