*/
class PasswordReset extends SpecialPage
{
function PasswordReset() {
SpecialPage::SpecialPage("PasswordReset","passwordreset");
self::loadMessages();
}
function execute( $par ) {
global $wgRequest, $wgOut, $wgUser, $wgTitle;
$this->setHeaders();
if ( !$wgUser->isAllowed( 'passwordreset' ) ) {
$wgOut->permissionRequired( 'passwordreset' );
return;
}
$username = Title::newFromText( $wgRequest->getText( 'username' ) );
$username_text = is_object( $username ) ? $username->getText() : '';
if (strlen($wgRequest->getText('username').$wgRequest->getText('newpass').$wgRequest->getText('confirmpass'))>0) {
//POST data found
if (strlen($username_text)>0) {
$objUser = User::newFromName( $username->getText() );
$userID = $objUser->idForName();
if ( !is_object( $objUser ) || $userID == 0 ) {
$validUser = false;
$wgOut->addHTML( "" . wfMsg('passwordreset-invalidusername') . "
\n" );
} else {
$validUser = true;
}
} else {
$validUser = false;
$wgOut->addHTML( "" . wfMsg('passwordreset-emptyusername') . "
\n" );
}
$newpass = $wgRequest->getText( 'newpass' );
$confirmpass = $wgRequest->getText( 'confirmpass' );
if ($newpass==$confirmpass && strlen($newpass.$oldpass)>0) {
//Passwords match
$passMatch = true;
} else {
//Passwords DO NOT match
$passMatch = false;
$wgOut->addHTML( "" . wfMsg('passwordreset-nopassmatch') . "
\n" );
}
if (!$wgUser->matchEditToken( $wgRequest->getVal( 'token' ) ) ) {
$validUser = false;
$passMatch = false;
$wgOut->addHTML( "" . wfMsg('passwordreset-badtoken') . "
\n" );
}
}
$action = $wgTitle->escapeLocalUrl();
$token = $wgUser->editToken();
$wgOut->addHTML( "