$form->BlockHideName = $params['hidename'];
$form->BlockAllowUsertalk = $params['allowusertalk'] && $wgBlockAllowsUTEdit;
$form->BlockReblock = $params['reblock'];
+ $form->BlockWatchUser = $params['watchuser'];
$userID = $expiry = null;
$retval = $form->doBlock( $userID, $expiry );
if ( $params['allowusertalk'] ) {
$res['allowusertalk'] = '';
}
+ if ( $params['watchuser'] ) {
+ $res['watchuser'] = '';
+ }
$this->getResult()->addValue( null, $this->getModuleName(), $res );
}
'hidename' => false,
'allowusertalk' => false,
'reblock' => false,
+ 'watchuser' => false,
);
}
'hidename' => 'Hide the username from the block log. (Requires the "hideuser" right.)',
'allowusertalk' => 'Allow the user to edit their own talk page (depends on $wgBlockAllowsUTEdit)',
'reblock' => 'If the user is already blocked, overwrite the existing block',
+ 'watchuser' => 'Watch the user/IP\'s user and talk pages',
);
}
--- /dev/null
+<?php
+
+require_once dirname( __FILE__ ) . '/ApiSetup.php';
+
+/**
+ * @group Database
+ * @group Destructive
+ */
+class ApiBlockTest extends ApiTestSetup {
+
+ function setUp() {
+ parent::setUp();
+ $this->doLogin();
+ }
+
+ function getTokens() {
+ return $this->getTokenList( $this->sysopUser );
+ }
+
+ function addDBData() {
+ $user = User::newFromName( 'UTBlockee' );
+
+ if ( $user->getId() == 0 ) {
+ $user->addToDatabase();
+ $user->setPassword( 'UTBlockeePassword' );
+
+ $user->saveSettings();
+ }
+ }
+
+
+
+ function testMakeNormalBlock() {
+
+ $data = $this->getTokens();
+
+ $user = User::newFromName( 'UTBlockee' );
+
+ if ( !$user->getId() ) {
+ $this->markTestIncomplete( "The user UTBlockee does not exist" );
+ }
+
+ if( !isset( $data[0]['query']['pages'] ) ) {
+ $this->markTestIncomplete( "No block token found" );
+ }
+
+ $keys = array_keys( $data[0]['query']['pages'] );
+ $key = array_pop( $keys );
+ $pageinfo = $data[0]['query']['pages'][$key];
+
+ $data = $this->doApiRequest( array(
+ 'action' => 'block',
+ 'user' => 'UTBlockee',
+ 'reason' => 'Some reason',
+ 'token' => $pageinfo['blocktoken'] ), $data );
+
+ $block = Block::newFromDB('UTBlockee');
+
+ $this->assertTrue( !is_null( $block ), 'Block is valid' );
+
+ $this->assertEquals( 'UTBlockee', $block->mAddress );
+ $this->assertEquals( 'Some reason', $block->mReason );
+ $this->assertEquals( 'infinity', $block->mExpiry );
+
+ }
+
+}