Some documentation. Let's talk about it in wikitech-l.
[mediawiki.git] / includes / SpecialBlockme.php
blobea45bc7afc4d497b99c74bfd7c87f14e59137d58
1 <?php
2 /**
4 */
6 /**
8 */
9 function wfSpecialBlockme()
11 global $wgIP, $wgBlockOpenProxies, $wgOut, $wgProxyKey;
13 if ( !$wgBlockOpenProxies || $_REQUEST['ip'] != md5( $wgIP . $wgProxyKey ) ) {
14 $wgOut->addWikiText( wfMsg( "disabled" ) );
15 return;
18 $blockerName = wfMsg( "proxyblocker" );
19 $reason = wfMsg( "proxyblockreason" );
20 $success = wfMsg( "proxyblocksuccess" );
22 $u = User::newFromName( $blockerName );
23 $id = $u->idForName();
24 if ( !$id ) {
25 $u = User::newFromName( $blockerName );
26 $u->addToDatabase();
27 $u->setPassword( bin2hex( mt_rand(0, 0x7fffffff ) ) );
28 $u->saveSettings();
29 $id = $u->getID();
32 $block = new Block( $wgIP, 0, $id, $reason, wfTimestampNow() );
33 $block->insert();
35 $wgOut->addWikiText( $success );