(bug 6040) Run pre-save transform before calculating the diff. when doing a "show...
[mediawiki.git] / includes / SpecialBlockme.php
blobb452b147380e638779785f7e3adb0bb86e072ba4
1 <?php
2 /**
4 * @package MediaWiki
5 * @subpackage SpecialPage
6 */
8 /**
11 function wfSpecialBlockme()
13 global $wgBlockOpenProxies, $wgOut, $wgProxyKey;
15 $ip = wfGetIP();
17 if ( !$wgBlockOpenProxies || $_REQUEST['ip'] != md5( $ip . $wgProxyKey ) ) {
18 $wgOut->addWikiText( wfMsg( "disabled" ) );
19 return;
22 $blockerName = wfMsg( "proxyblocker" );
23 $reason = wfMsg( "proxyblockreason" );
24 $success = wfMsg( "proxyblocksuccess" );
26 $u = User::newFromName( $blockerName );
27 $id = $u->idForName();
28 if ( !$id ) {
29 $u = User::newFromName( $blockerName );
30 $u->addToDatabase();
31 $u->setPassword( bin2hex( mt_rand(0, 0x7fffffff ) ) );
32 $u->saveSettings();
33 $id = $u->getID();
36 $block = new Block( $ip, 0, $id, $reason, wfTimestampNow() );
37 $block->insert();
39 $wgOut->addWikiText( $success );