1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 14:00:31 +02:00

[ticket/16533] Add autologin keys management UCP module events

PHPBB3-16533
This commit is contained in:
rxu
2020-06-21 15:11:24 +07:00
parent e7186f41ed
commit 5a33a141af
5 changed files with 141 additions and 12 deletions

View File

@@ -44,4 +44,37 @@ class phpbb_functional_ucp_profile_test extends phpbb_functional_test_case
$this->assertEquals('phpbb_twitter', $form->get('pf_phpbb_twitter')->getValue());
$this->assertEquals('phpbb.youtube', $form->get('pf_phpbb_youtube')->getValue());
}
public function test_autologin_keys_manage()
{
$this->add_lang('ucp');
$this->login('admin', true);
$db = $this->get_db();
$crawler = self::request('GET', 'ucp.php?i=ucp_profile&mode=autologin_keys');
$this->assertContainsLang('UCP_PROFILE_AUTOLOGIN_KEYS', $crawler->filter('#cp-main h2')->text());
$profile_url = $crawler->filter('a[title="Profile"]')->attr('href');
$user_id = $this->get_parameter_from_link($profile_url, 'u');
$sql_ary = [
'SELECT' => 'sk.key_id',
'FROM' => [SESSIONS_KEYS_TABLE => 'sk'],
'WHERE' => 'sk.user_id = ' . (int) $user_id,
'ORDER_BY' => 'sk.last_login ASC',
];
$result = $db->sql_query_limit($db->sql_build_query('SELECT', $sql_ary), 1);
$key_id = substr($db->sql_fetchfield('key_id'), 0, 8);
$db->sql_freeresult($result);
$this->assertContains($key_id, $crawler->filter('label[for="' . $key_id . '"]')->text());
$form = $crawler->selectButton('submit')->form();
$form['keys'][0]->tick();
$crawler = self::submit($form);
$this->assertContains($this->lang('AUTOLOGIN_SESSION_KEYS_DELETED'), $crawler->filter('html')->text());
$crawler = self::request('GET', 'ucp.php?i=ucp_profile&mode=autologin_keys');
$this->assertContains($this->lang('PROFILE_NO_AUTOLOGIN_KEYS'), $crawler->filter('tbody > tr > td[class="bg1"]')->text());
}
}

View File

@@ -788,7 +788,7 @@ class phpbb_functional_test_case extends phpbb_test_case
return group_user_add($group_id, false, $usernames, $group_name, $default, $leader);
}
protected function login($username = 'admin')
protected function login($username = 'admin', $autologin = false)
{
$this->add_lang('ucp');
@@ -796,6 +796,10 @@ class phpbb_functional_test_case extends phpbb_test_case
$this->assertContains($this->lang('LOGIN_EXPLAIN_UCP'), $crawler->filter('html')->text());
$form = $crawler->selectButton($this->lang('LOGIN'))->form();
if ($autologin)
{
$form['autologin']->tick();
}
$crawler = self::submit($form, array('username' => $username, 'password' => $username . $username));
$this->assertNotContains($this->lang('LOGIN'), $crawler->filter('.navbar')->text());