getVal( 'wpUnblockAddress', $wgRequest->getVal( 'ip' ) ); $reason = $wgRequest->getText( 'wpUnblockReason' ); $action = $wgRequest->getText( 'action' ); $ipu = new IPUnblockForm( $ip, $reason ); if ( "success" == $action ) { $msg = wfMsg( "ipusuccess", $ip ); $ipu->showList( $msg ); } else if ( "submit" == $action && $wgRequest->wasPosted() ) { if ( ! $wgUser->isSysop() ) { $wgOut->sysopRequired(); return; } $ipu->doSubmit(); } else if ( "unblock" == $action ) { $ipu->showForm( "" ); } else { $ipu->showList( "" ); } } class IPUnblockForm { var $ip, $reason; function IPUnblockForm( $ip, $reason ) { $this->ip = $ip; $this->reason = $reason; } function showForm( $err ) { global $wgOut, $wgUser, $wgLang; $wgOut->setPagetitle( wfMsg( "unblockip" ) ); $wgOut->addWikiText( wfMsg( "unblockiptext" ) ); $ipa = wfMsg( "ipaddress" ); $ipr = wfMsg( "ipbreason" ); $ipus = htmlspecialchars( wfMsg( "ipusubmit" ) ); $titleObj = Title::makeTitle( NS_SPECIAL, "Ipblocklist" ); $action = $titleObj->escapeLocalURL( "action=submit" ); if ( "" != $err ) { $wgOut->setSubtitle( wfMsg( "formerror" ) ); $wgOut->addHTML( "
{$err}
\n" ); } $wgOut->addHTML( " \n" ); } function doSubmit() { global $wgOut, $wgUser, $wgLang; $block = new Block(); $this->ip = trim( $this->ip ); if ( $this->ip{0} == "#" ) { $block->mId = substr( $this->ip, 1 ); } else { $block->mAddress = $this->ip; } # Delete block (if it exists) # We should probably check for errors rather than just declaring success $block->delete(); # Make log entry $log = new LogPage( wfMsg( "blocklogpage" ), wfMsg( "blocklogtext" ) ); $action = wfMsg( "unblocklogentry", $this->ip ); $log->addEntry( $action, $this->reason ); # Report to the user $titleObj = Title::makeTitle( NS_SPECIAL, "Ipblocklist" ); $success = $titleObj->getFullURL( "action=success&ip=" . urlencode( $this->ip ) ); $wgOut->redirect( $success ); } function showList( $msg ) { global $wgOut; $wgOut->setPagetitle( wfMsg( "ipblocklist" ) ); if ( "" != $msg ) { $wgOut->setSubtitle( $msg ); } $wgOut->addHTML( "