diff options
author | Marc Alexander <admin@m-a-styles.de> | 2014-10-30 13:58:09 +0100 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2014-11-01 21:54:06 +0100 |
commit | 6b057e026cfb9603c6260d619e0a37e3679aa0d5 (patch) | |
tree | 451b790fca760baa5d29fcd6068e135ca8d9a56e | |
parent | f3588c66ec22b71e779da1497a690802e1c6b51a (diff) | |
download | forums-6b057e026cfb9603c6260d619e0a37e3679aa0d5.tar forums-6b057e026cfb9603c6260d619e0a37e3679aa0d5.tar.gz forums-6b057e026cfb9603c6260d619e0a37e3679aa0d5.tar.bz2 forums-6b057e026cfb9603c6260d619e0a37e3679aa0d5.tar.xz forums-6b057e026cfb9603c6260d619e0a37e3679aa0d5.zip |
[ticket/13248] Use auth provider collection for getting provider
PHPBB3-13248
-rw-r--r-- | phpBB/phpbb/auth/auth.php | 6 | ||||
-rw-r--r-- | tests/functional/auth_test.php | 24 |
2 files changed, 27 insertions, 3 deletions
diff --git a/phpBB/phpbb/auth/auth.php b/phpBB/phpbb/auth/auth.php index 38755ccf99..b59f0e60ec 100644 --- a/phpBB/phpbb/auth/auth.php +++ b/phpBB/phpbb/auth/auth.php @@ -927,11 +927,11 @@ class auth */ function login($username, $password, $autologin = false, $viewonline = 1, $admin = 0) { - global $config, $db, $user, $phpbb_root_path, $phpEx, $phpbb_container; + global $db, $user, $phpbb_root_path, $phpEx, $phpbb_container; - $method = trim(basename($config['auth_method'])); + $provider_collection = $phpbb_container->get('auth.provider_collection'); - $provider = $phpbb_container->get('auth.provider.' . $method); + $provider = $provider_collection->get_provider(); if ($provider) { $login = $provider->login($username, $password); diff --git a/tests/functional/auth_test.php b/tests/functional/auth_test.php index b4b4279bf1..1794afd009 100644 --- a/tests/functional/auth_test.php +++ b/tests/functional/auth_test.php @@ -34,6 +34,30 @@ class phpbb_functional_auth_test extends phpbb_functional_test_case } /** + * @dependsOn test_login_other + */ + public function test_login_ucp_other_auth_provider() + { + global $cache, $config; + $cache = new phpbb_mock_null_cache; + $db = $this->get_db(); + $sql = 'UPDATE ' . CONFIG_TABLE . " SET config_value = 'foobar' WHERE config_name = 'auth_method'"; + $db->sql_query($sql); + $crawler = self::request('GET', 'ucp.php?mode=login'); + $form = $crawler->selectButton('Login')->form(); + $form->setValues(array( + 'username' => 'anothertestuser', + 'password' => str_repeat('anothertestuser', 2), + )); + $config['auth_method'] = 'foobar'; + $crawler = self::submit($form); + $this->assertContains('anothertestuser', $crawler->filter('#username_logged_in')->text()); + $sql = 'UPDATE ' . CONFIG_TABLE . " SET config_value = 'db' WHERE config_name = 'auth_method'"; + $db->sql_query($sql); + $config['auth_method'] = 'db'; + } + + /** * @depends test_login */ public function test_logout() |