From 3ebff0a96042ba366e316727cbb83b063bc0700d Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Sat, 28 Sep 2013 12:42:11 +0200 Subject: [PATCH] [feature/passwords] Pass config via service container to driver helper This will get rid of the global $config in the driver helper PHPBB3-11610 --- phpBB/config/passwords.yml | 2 ++ phpBB/phpbb/passwords/driver/helper.php | 26 +++++++++++++++++++------ tests/passwords/manager_test.php | 2 +- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/phpBB/config/passwords.yml b/phpBB/config/passwords.yml index 9e83bbd918..511f10c31c 100644 --- a/phpBB/config/passwords.yml +++ b/phpBB/config/passwords.yml @@ -51,6 +51,8 @@ services: passwords.driver_helper: class: phpbb\passwords\driver\helper + arguments: + - @config passwords.manager: class: phpbb\passwords\manager diff --git a/phpBB/phpbb/passwords/driver/helper.php b/phpBB/phpbb/passwords/driver/helper.php index fbb6f9bb2b..da66347ac3 100644 --- a/phpBB/phpbb/passwords/driver/helper.php +++ b/phpBB/phpbb/passwords/driver/helper.php @@ -22,12 +22,27 @@ if (!defined('IN_PHPBB')) */ class helper { + /** + * @var phpbb\config\config + */ + protected $config; + /** * base64 alphabet * @var string */ public $itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; + /** + * Construct a driver helper object + * + * @param phpbb\config\config $config phpBB configuration + */ + public function __construct(\phpbb\config\config $config) + { + $this->config = $config; + } + /** * Base64 encode hash * @@ -86,16 +101,15 @@ class helper public function unique_id($extra = 'c') { static $dss_seeded = false; - global $config; - $val = $config['rand_seed'] . microtime(); + $val = $this->config['rand_seed'] . microtime(); $val = md5($val); - $config['rand_seed'] = md5($config['rand_seed'] . $val . $extra); + $this->config['rand_seed'] = md5($this->config['rand_seed'] . $val . $extra); - if ($dss_seeded !== true && ($config['rand_seed_last_update'] < time() - rand(1,10))) + if ($dss_seeded !== true && ($this->config['rand_seed_last_update'] < time() - rand(1,10))) { - set_config('rand_seed_last_update', time(), true); - set_config('rand_seed', $config['rand_seed'], true); + $this->config->set('rand_seed_last_update', time(), true); + $this->config->set('rand_seed', $this->config['rand_seed'], true); $dss_seeded = true; } diff --git a/tests/passwords/manager_test.php b/tests/passwords/manager_test.php index c6ab731d7b..082b309501 100644 --- a/tests/passwords/manager_test.php +++ b/tests/passwords/manager_test.php @@ -26,7 +26,7 @@ class phpbb_passwords_manager_test extends PHPUnit_Framework_TestCase // Prepare dependencies for manager and driver $config = new \phpbb\config\config(array()); - $driver_helper = new phpbb\passwords\driver\helper; + $driver_helper = new phpbb\passwords\driver\helper($config); $this->passwords_drivers = array( 'passwords.driver.bcrypt' => new phpbb\passwords\driver\bcrypt($config, $driver_helper),