function addDBData() { // ensure the correct default gender $this->mergeMwGlobalArrayValue('wgDefaultUserOptions', array('gender' => 'unknown')); $user = User::newFromName('UTMale'); if ($user->getID() == 0) { $user->addToDatabase(); TestUser::setPasswordForUser($user, 'UTMalePassword'); } // ensure the right gender $user->setOption('gender', 'male'); $user->saveSettings(); $user = User::newFromName('UTFemale'); if ($user->getID() == 0) { $user->addToDatabase(); TestUser::setPasswordForUser($user, 'UTFemalePassword'); } // ensure the right gender $user->setOption('gender', 'female'); $user->saveSettings(); $user = User::newFromName('UTDefaultGender'); if ($user->getID() == 0) { $user->addToDatabase(); TestUser::setPasswordForUser($user, 'UTDefaultGenderPassword'); } // ensure the default gender $user->setOption('gender', null); $user->saveSettings(); }
function addDBData() { $user = User::newFromName('UTApiBlockee'); if ($user->getId() == 0) { $user->addToDatabase(); TestUser::setPasswordForUser($user, 'UTApiBlockeePassword'); $user->saveSettings(); } }
public function __construct($userName, $password, $group = '') { $this->userName = $userName; $this->password = $password; $this->user = User::newFromName($this->userName); if (!$this->user->getId()) { $this->user = User::createNew($this->userName, ["email" => "*****@*****.**", "real_name" => "Test User"]); } TestUser::setPasswordForUser($this->user, $this->password); if ($group !== '') { $this->user->addGroup($group); } $this->user->saveSettings(); }
private function addCoreDBData() { if ($this->db->getType() == 'oracle') { # Insert 0 user to prevent FK violations # Anonymous user $this->db->insert('user', array('user_id' => 0, 'user_name' => 'Anonymous'), __METHOD__, array('IGNORE')); # Insert 0 page to prevent FK violations # Blank page $this->db->insert('page', array('page_id' => 0, 'page_namespace' => 0, 'page_title' => ' ', 'page_restrictions' => null, 'page_is_redirect' => 0, 'page_is_new' => 0, 'page_random' => 0, 'page_touched' => $this->db->timestamp(), 'page_latest' => 0, 'page_len' => 0), __METHOD__, array('IGNORE')); } User::resetIdByNameCache(); // Make sysop user $user = User::newFromName('UTSysop'); if ($user->idForName() == 0) { $user->addToDatabase(); TestUser::setPasswordForUser($user, 'UTSysopPassword'); } // Always set groups, because $this->resetDB() wipes them out $user->addGroup('sysop'); $user->addGroup('bureaucrat'); // Make 1 page with 1 revision $page = WikiPage::factory(Title::newFromText('UTPage')); if ($page->getId() == 0) { $page->doEditContent(new WikitextContent('UTContent'), 'UTPageSummary', EDIT_NEW, false, $user); // doEditContent() probably started the session via // User::loadFromSession(). Close it now. if (session_id() !== '') { session_write_close(); session_id(''); } } }
public function testCheckAccountCreatePermissions() { global $wgGroupPermissions; $this->stashMwGlobals(['wgGroupPermissions']); $this->initializeManager(true); $wgGroupPermissions['*']['createaccount'] = true; $this->assertEquals(\Status::newGood(), $this->manager->checkAccountCreatePermissions(new \User())); $this->setMwGlobals(['wgReadOnly' => 'Because']); $this->assertEquals(\Status::newFatal('readonlytext', 'Because'), $this->manager->checkAccountCreatePermissions(new \User())); $this->setMwGlobals(['wgReadOnly' => false]); $wgGroupPermissions['*']['createaccount'] = false; $status = $this->manager->checkAccountCreatePermissions(new \User()); $this->assertFalse($status->isOK()); $this->assertTrue($status->hasMessage('badaccess-groups')); $wgGroupPermissions['*']['createaccount'] = true; $user = \User::newFromName('UTBlockee'); if ($user->getID() == 0) { $user->addToDatabase(); \TestUser::setPasswordForUser($user, 'UTBlockeePassword'); $user->saveSettings(); } $oldBlock = \Block::newFromTarget('UTBlockee'); if ($oldBlock) { // An old block will prevent our new one from saving. $oldBlock->delete(); } $blockOptions = ['address' => 'UTBlockee', 'user' => $user->getID(), 'reason' => __METHOD__, 'expiry' => time() + 100500, 'createAccount' => true]; $block = new \Block($blockOptions); $block->insert(); $status = $this->manager->checkAccountCreatePermissions($user); $this->assertFalse($status->isOK()); $this->assertTrue($status->hasMessage('cantcreateaccount-text')); $blockOptions = ['address' => '127.0.0.0/24', 'reason' => __METHOD__, 'expiry' => time() + 100500, 'createAccount' => true]; $block = new \Block($blockOptions); $block->insert(); $scopeVariable = new \ScopedCallback([$block, 'delete']); $status = $this->manager->checkAccountCreatePermissions(new \User()); $this->assertFalse($status->isOK()); $this->assertTrue($status->hasMessage('cantcreateaccount-range-text')); \ScopedCallback::consume($scopeVariable); $this->setMwGlobals(['wgEnableDnsBlacklist' => true, 'wgDnsBlacklistUrls' => ['local.wmftest.net'], 'wgProxyWhitelist' => []]); $status = $this->manager->checkAccountCreatePermissions(new \User()); $this->assertFalse($status->isOK()); $this->assertTrue($status->hasMessage('sorbs_create_account_reason')); $this->setMwGlobals('wgProxyWhitelist', ['127.0.0.1']); $status = $this->manager->checkAccountCreatePermissions(new \User()); $this->assertTrue($status->isGood()); }
public function testDeprecatedConstructor() { $this->hideDeprecated('Block::__construct with multiple arguments'); $username = '******'; $reason = 'being irrational'; # Set up the target $u = User::newFromName($username); if ($u->getID() == 0) { $u->addToDatabase(); TestUser::setPasswordForUser($u, 'TotallyObvious'); } unset($u); # Make sure the user isn't blocked $this->assertNull(Block::newFromTarget($username), "{$username} should not be blocked"); # Perform the block $block = new Block($username, 0, 0, $reason, 0, false, 0); $block->insert(); # Check target $this->assertEquals($block->getTarget()->getName(), $username, "Target should be set properly"); # Check supplied parameter $this->assertEquals($block->mReason, $reason, "Reason should be non-default"); # Check default parameter $this->assertFalse((bool) $block->prevents('createaccount'), "Account creation should not be blocked by default"); }
public function testRangeBlock() { $blockOptions = ['address' => '127.0.0.0/24', 'reason' => __METHOD__, 'expiry' => time() + 100500, 'createAccount' => true]; $block = new \Block($blockOptions); $block->insert(); $scopeVariable = new \Wikimedia\ScopedCallback([$block, 'delete']); $user = \User::newFromName('UTNormalUser'); if ($user->getID() == 0) { $user->addToDatabase(); \TestUser::setPasswordForUser($user, 'UTNormalUserPassword'); $user->saveSettings(); } $this->setMwGlobals(['wgUser' => $user]); $newuser = \User::newFromName('RandomUser'); $provider = new CheckBlocksSecondaryAuthenticationProvider(['blockDisablesLogin' => true]); $provider->setLogger(new \Psr\Log\NullLogger()); $provider->setConfig(new \HashConfig()); $provider->setManager(AuthManager::singleton()); $ret = $provider->beginSecondaryAuthentication($user, []); $this->assertEquals(AuthenticationResponse::FAIL, $ret->status); $status = $provider->testUserForCreation($newuser, AuthManager::AUTOCREATE_SOURCE_SESSION); $this->assertInstanceOf('StatusValue', $status); $this->assertFalse($status->isOK()); $this->assertTrue($status->hasMessage('cantcreateaccount-range-text')); $status = $provider->testUserForCreation($newuser, false); $this->assertInstanceOf('StatusValue', $status); $this->assertFalse($status->isOK()); $this->assertTrue($status->hasMessage('cantcreateaccount-range-text')); }