1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-01 14:30:32 +02:00

Merge pull request #6012 from rxu/ticket/16533

[ticket/16533] Add autologin keys management UCP module events
This commit is contained in:
Marc Alexander
2020-08-13 21:15:59 +02:00
6 changed files with 166 additions and 14 deletions

View File

@@ -54,7 +54,7 @@ class phpbb_functional_ucp_profile_test extends phpbb_functional_test_case
$this->assertContainsLang('UCP_PROFILE_PROFILE_INFO', $crawler->filter('#cp-main h2')->text());
$form = $crawler->selectButton('Submit')->form([
'pf_phpbb_location' => '😁', // grinning face with smiling eyes Emoji
'pf_phpbb_location' => '😁', // grinning face with smiling eyes Emoji
]);
$crawler = self::submit($form);
$this->assertContainsLang('PROFILE_UPDATED', $crawler->filter('#message')->text());
@@ -63,4 +63,37 @@ class phpbb_functional_ucp_profile_test extends phpbb_functional_test_case
$form = $crawler->selectButton('Submit')->form();
$this->assertEquals('😁', $form->get('pf_phpbb_location')->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());