From a4fe72bd533ef6ebe2040b0dbc8c26ebed1528e2 Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Thu, 2 May 2013 15:40:43 -0500 Subject: [PATCH 01/53] [ticket/11420] Fix notification options conversion PHPBB3-11420 --- .../db/migration/data/310/notifications.php | 64 ---------- .../db/migration/data/310/notifications3.php | 106 +++++++++++++++++ tests/notification/convert_test.php | 110 ++++++++++++++++++ tests/notification/fixtures/convert.xml | 52 +++++++++ 4 files changed, 268 insertions(+), 64 deletions(-) create mode 100644 phpBB/includes/db/migration/data/310/notifications3.php create mode 100644 tests/notification/convert_test.php create mode 100644 tests/notification/fixtures/convert.xml diff --git a/phpBB/includes/db/migration/data/310/notifications.php b/phpBB/includes/db/migration/data/310/notifications.php index 82bfd4cb2d..17c939d95a 100644 --- a/phpBB/includes/db/migration/data/310/notifications.php +++ b/phpBB/includes/db/migration/data/310/notifications.php @@ -91,70 +91,6 @@ class phpbb_db_migration_data_310_notifications extends phpbb_db_migration ), )), array('config.add', array('load_notifications', 1)), - array('custom', array(array($this, 'convert_notifications'))), ); } - - public function convert_notifications() - { - $convert_notifications = array( - array( - 'check' => ($this->config['allow_topic_notify']), - 'item_type' => 'post', - ), - array( - 'check' => ($this->config['allow_forum_notify']), - 'item_type' => 'topic', - ), - array( - 'check' => ($this->config['allow_bookmarks']), - 'item_type' => 'bookmark', - ), - array( - 'check' => ($this->config['allow_privmsg']), - 'item_type' => 'pm', - ), - ); - - foreach ($convert_notifications as $convert_data) - { - if ($convert_data['check']) - { - $sql = 'SELECT user_id, user_notify_type - FROM ' . USERS_TABLE . ' - WHERE user_notify = 1'; - $result = $this->db->sql_query($sql); - while ($row = $this->db->sql_fetchrow($result)) - { - $this->sql_query('INSERT INTO ' . $this->table_prefix . 'user_notifications ' . $this->db->sql_build_array('INSERT', array( - 'item_type' => $convert_data['item_type'], - 'item_id' => 0, - 'user_id' => $row['user_id'], - 'method' => '', - ))); - - if ($row['user_notify_type'] == NOTIFY_EMAIL || $row['user_notify_type'] == NOTIFY_BOTH) - { - $this->sql_query('INSERT INTO ' . $this->table_prefix . 'user_notifications ' . $this->db->sql_build_array('INSERT', array( - 'item_type' => $convert_data['item_type'], - 'item_id' => 0, - 'user_id' => $row['user_id'], - 'method' => 'email', - ))); - } - - if ($row['user_notify_type'] == NOTIFY_IM || $row['user_notify_type'] == NOTIFY_BOTH) - { - $this->sql_query('INSERT INTO ' . $this->table_prefix . 'user_notifications ' . $this->db->sql_build_array('INSERT', array( - 'item_type' => $convert_data['item_type'], - 'item_id' => 0, - 'user_id' => $row['user_id'], - 'method' => 'jabber', - ))); - } - } - $this->db->sql_freeresult($result); - } - } - } } diff --git a/phpBB/includes/db/migration/data/310/notifications3.php b/phpBB/includes/db/migration/data/310/notifications3.php new file mode 100644 index 0000000000..22839dbd7b --- /dev/null +++ b/phpBB/includes/db/migration/data/310/notifications3.php @@ -0,0 +1,106 @@ +table_prefix . 'user_notifications'; + $insert_buffer = new phpbb_db_sql_insert_buffer($this->db, $insert_table); + + $this->perform_conversion($insert_buffer, $insert_table); + } + + /** + * Perform the conversion (separate for testability) + */ + public function perform_conversion($insert_buffer, $insert_table) + { + $sql = 'DELETE FROM ' . $insert_table; + $this->db->sql_query($sql); + + $sql = 'SELECT user_id, user_notify_type, user_notify_pm + FROM ' . USERS_TABLE; + $result = $this->db->sql_query($sql); + + while ($row = $this->db->sql_fetchrow($result)) + { + $notification_methods = array(); + + // In-board notification + $notification_methods[] = ''; + + if ($row['user_notify_type'] == NOTIFY_EMAIL || $row['user_notify_type'] == NOTIFY_BOTH) + { + $notification_methods[] = 'email'; + } + + if ($row['user_notify_type'] == NOTIFY_IM || $row['user_notify_type'] == NOTIFY_BOTH) + { + $notification_methods[] = 'jabber'; + } + + // Notifications for posts + foreach (array('post', 'topic') as $item_type) + { + $this->add_method_rows( + $insert_buffer, + $item_type, + 0, + $row['user_id'], + $notification_methods + ); + } + + if ($row['user_notify_pm']) + { + // Notifications for private messages + // User either gets all methods or no method + $this->add_method_rows( + $insert_buffer, + 'pm', + 0, + $row['user_id'], + $notification_methods + ); + } + } + $this->db->sql_freeresult($result); + + $insert_buffer->flush(); + } + + protected function add_method_rows(phpbb_db_sql_insert_buffer $insert_buffer, $item_type, $item_id, $user_id, array $methods) + { + $row_base = array( + 'item_type' => $item_type, + 'item_id' => (int) $item_id, + 'user_id' => (int) $user_id, + 'notify' => 1 + ); + + foreach ($methods as $method) + { + $row_base['method'] = $method; + $insert_buffer->insert($row_base); + } + } +} diff --git a/tests/notification/convert_test.php b/tests/notification/convert_test.php new file mode 100644 index 0000000000..fdd0d19e72 --- /dev/null +++ b/tests/notification/convert_test.php @@ -0,0 +1,110 @@ +createXMLDataSet(dirname(__FILE__) . '/fixtures/convert.xml'); + } + + protected function setUp() + { + parent::setUp(); + + global $phpbb_root_path, $phpEx; + + $this->db = $this->new_dbal(); + + $this->migration = new phpbb_db_migration_data_310_notifications3( + new phpbb_config(array()), + $this->db, + new phpbb_db_tools($this->db), + $phpbb_root_path, + $phpEx, + 'phpbb_' + ); + } + + public function test_convert() + { + $buffer = new phpbb_mock_sql_insert_buffer($this->db, 'phpbb_user_notifications'); + $this->migration->perform_conversion($buffer, 'phpbb_user_notifications'); + + $expected = array_merge( + $this->create_expected('post', 1, 'email'), + $this->create_expected('topic', 1, 'email'), + + $this->create_expected('post', 2, 'email'), + $this->create_expected('topic', 2, 'email'), + $this->create_expected('pm', 2, 'email'), + + $this->create_expected('post', 3, 'jabber'), + $this->create_expected('topic', 3, 'jabber'), + + $this->create_expected('post', 4, 'jabber'), + $this->create_expected('topic', 4, 'jabber'), + $this->create_expected('pm', 4, 'jabber'), + + $this->create_expected('post', 5, 'both'), + $this->create_expected('topic', 5, 'both'), + + $this->create_expected('post', 6, 'both'), + $this->create_expected('topic', 6, 'both'), + $this->create_expected('pm', 6, 'both') + ); + + $this->assertEquals($expected, $buffer->get_buffer()); + } + + protected function create_expected($type, $user_id, $method = '') + { + $return = array(); + + if ($method != '') + { + $return[] = array( + 'item_type' => $type, + 'item_id' => 0, + 'user_id' => $user_id, + 'method' => '', + 'notify' => 1, + ); + } + + if ($method == 'email' || $method == 'both') + { + $return[] = array( + 'item_type' => $type, + 'item_id' => 0, + 'user_id' => $user_id, + 'method' => 'email', + 'notify' => 1, + ); + } + + if ($method == 'jabber' || $method == 'both') + { + $return[] = array( + 'item_type' => $type, + 'item_id' => 0, + 'user_id' => $user_id, + 'method' => 'jabber', + 'notify' => 1, + ); + } + + return $return; + } +} diff --git a/tests/notification/fixtures/convert.xml b/tests/notification/fixtures/convert.xml new file mode 100644 index 0000000000..a244070a95 --- /dev/null +++ b/tests/notification/fixtures/convert.xml @@ -0,0 +1,52 @@ + + + + user_id + username + username_clean + user_notify_type + user_notify_pm + + 1 + 1 + 1 + 0 + 0 + + + 2 + 2 + 2 + 0 + 1 + + + 3 + 3 + 3 + 1 + 0 + + + 4 + 4 + 4 + 1 + 1 + + + 5 + 5 + 5 + 2 + 0 + + + 6 + 6 + 6 + 2 + 1 + +
+
From 77436595630d3aa267ebb9b00d12e899818a34b7 Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Fri, 3 May 2013 08:37:09 -0500 Subject: [PATCH 02/53] [ticket/11420] Forgot to include mock sql_insert_buffer PHPBB3-11420 --- tests/mock/sql_insert_buffer.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 tests/mock/sql_insert_buffer.php diff --git a/tests/mock/sql_insert_buffer.php b/tests/mock/sql_insert_buffer.php new file mode 100644 index 0000000000..ba09aa8d7f --- /dev/null +++ b/tests/mock/sql_insert_buffer.php @@ -0,0 +1,21 @@ +buffer)) ? true : false; + } + + public function get_buffer() + { + return $this->buffer; + } +} From cb13747c4bdff5fb8ab034909474f276eff212ee Mon Sep 17 00:00:00 2001 From: Nathan Guse Date: Fri, 10 May 2013 13:44:38 -0500 Subject: [PATCH 03/53] [ticket/11420] Rename migrations file to something more helpful PHPBB3-11420 --- ...{notifications3.php => notification_options_reconvert.php} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename phpBB/includes/db/migration/data/310/{notifications3.php => notification_options_reconvert.php} (93%) diff --git a/phpBB/includes/db/migration/data/310/notifications3.php b/phpBB/includes/db/migration/data/310/notification_options_reconvert.php similarity index 93% rename from phpBB/includes/db/migration/data/310/notifications3.php rename to phpBB/includes/db/migration/data/310/notification_options_reconvert.php index 22839dbd7b..9f2d4b2d75 100644 --- a/phpBB/includes/db/migration/data/310/notifications3.php +++ b/phpBB/includes/db/migration/data/310/notification_options_reconvert.php @@ -7,11 +7,11 @@ * */ -class phpbb_db_migration_data_310_notifications3 extends phpbb_db_migration +class phpbb_db_migration_data_310_notification_options_reconvert extends phpbb_db_migration { static public function depends_on() { - return array('phpbb_db_migration_data_310_notifications2'); + return array('phpbb_db_migration_data_310_notifications_schema_fix'); } public function update_data() From bdaa40bb550c18f9c7feb4e2448a31a53e2a5bd2 Mon Sep 17 00:00:00 2001 From: Nathan Guse Date: Sat, 6 Jul 2013 12:58:52 -0500 Subject: [PATCH 04/53] [ticket/11420] Fix comments, license link PHPBB3-11420 --- .../310/notification_options_reconvert.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/phpBB/includes/db/migration/data/310/notification_options_reconvert.php b/phpBB/includes/db/migration/data/310/notification_options_reconvert.php index 9f2d4b2d75..d994d7ec5f 100644 --- a/phpBB/includes/db/migration/data/310/notification_options_reconvert.php +++ b/phpBB/includes/db/migration/data/310/notification_options_reconvert.php @@ -3,7 +3,7 @@ * * @package migration * @copyright (c) 2013 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License v2 +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 * */ @@ -31,8 +31,11 @@ class phpbb_db_migration_data_310_notification_options_reconvert extends phpbb_d /** * Perform the conversion (separate for testability) + * + * @param phpbb_db_sql_insert_buffer $insert_buffer + * @param string $insert_table */ - public function perform_conversion($insert_buffer, $insert_table) + public function perform_conversion(phpbb_db_sql_insert_buffer $insert_buffer, $insert_table) { $sql = 'DELETE FROM ' . $insert_table; $this->db->sql_query($sql); @@ -58,7 +61,7 @@ class phpbb_db_migration_data_310_notification_options_reconvert extends phpbb_d $notification_methods[] = 'jabber'; } - // Notifications for posts + // Notifications for posts foreach (array('post', 'topic') as $item_type) { $this->add_method_rows( @@ -88,6 +91,15 @@ class phpbb_db_migration_data_310_notification_options_reconvert extends phpbb_d $insert_buffer->flush(); } + /** + * Insert method rows to DB + * + * @param phpbb_db_sql_insert_buffer $insert_buffer + * @param string $item_type + * @param int $item_id + * @param int $user_id + * @param string $methods + */ protected function add_method_rows(phpbb_db_sql_insert_buffer $insert_buffer, $item_type, $item_id, $user_id, array $methods) { $row_base = array( From 9f85a4d118544e6097005ea3ef37e1e627838278 Mon Sep 17 00:00:00 2001 From: Nathan Guse Date: Sat, 6 Jul 2013 12:59:26 -0500 Subject: [PATCH 05/53] [ticket/11420] Use !==, === when comparing strings PHPBB3-11420 --- tests/notification/convert_test.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/notification/convert_test.php b/tests/notification/convert_test.php index fdd0d19e72..e07c144e16 100644 --- a/tests/notification/convert_test.php +++ b/tests/notification/convert_test.php @@ -72,7 +72,7 @@ class phpbb_notification_convert_test extends phpbb_database_test_case { $return = array(); - if ($method != '') + if ($method !== '') { $return[] = array( 'item_type' => $type, @@ -83,7 +83,7 @@ class phpbb_notification_convert_test extends phpbb_database_test_case ); } - if ($method == 'email' || $method == 'both') + if ($method === 'email' || $method === 'both') { $return[] = array( 'item_type' => $type, @@ -94,7 +94,7 @@ class phpbb_notification_convert_test extends phpbb_database_test_case ); } - if ($method == 'jabber' || $method == 'both') + if ($method === 'jabber' || $method === 'both') { $return[] = array( 'item_type' => $type, From 3c11052fb3896b43685f596dc6e52f9cc07d6807 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 10:54:55 -0400 Subject: [PATCH 06/53] [feature/auth-refactor] Have a base auth class PHPBB3-9734 --- phpBB/includes/auth/provider/apache.php | 19 +------ phpBB/includes/auth/provider/base.php | 69 +++++++++++++++++++++++++ phpBB/includes/auth/provider/db.php | 43 +-------------- phpBB/includes/auth/provider/ldap.php | 27 +--------- 4 files changed, 75 insertions(+), 83 deletions(-) create mode 100644 phpBB/includes/auth/provider/base.php diff --git a/phpBB/includes/auth/provider/apache.php b/phpBB/includes/auth/provider/apache.php index 5f6f2862b6..e0217725d6 100644 --- a/phpBB/includes/auth/provider/apache.php +++ b/phpBB/includes/auth/provider/apache.php @@ -20,7 +20,8 @@ if (!defined('IN_PHPBB')) * * @package auth */ -class phpbb_auth_provider_apache implements phpbb_auth_provider_interface +class phpbb_auth_provider_apache extends phpbb_auth_provider_base + implements phpbb_auth_provider_interface { /** * Apache Authentication Constructor @@ -256,20 +257,4 @@ class phpbb_auth_provider_apache implements phpbb_auth_provider_interface return false; } - - /** - * {@inheritdoc} - */ - public function acp($new) - { - return; - } - - /** - * {@inheritdoc} - */ - public function logout($data, $new_session) - { - return; - } } diff --git a/phpBB/includes/auth/provider/base.php b/phpBB/includes/auth/provider/base.php new file mode 100644 index 0000000000..e053a1829b --- /dev/null +++ b/phpBB/includes/auth/provider/base.php @@ -0,0 +1,69 @@ +php_ext = $php_ext; } - /** - * {@inheritdoc} - */ - public function init() - { - return; - } - /** * {@inheritdoc} */ @@ -302,36 +295,4 @@ class phpbb_auth_provider_db implements phpbb_auth_provider_interface 'user_row' => $row, ); } - - /** - * {@inheritdoc} - */ - public function autologin() - { - return; - } - - /** - * {@inheritdoc} - */ - public function acp($new) - { - return; - } - - /** - * {@inheritdoc} - */ - public function logout($data, $new_session) - { - return; - } - - /** - * {@inheritdoc} - */ - public function validate_session($user) - { - return; - } } diff --git a/phpBB/includes/auth/provider/ldap.php b/phpBB/includes/auth/provider/ldap.php index f67c1e9247..dbb569f466 100644 --- a/phpBB/includes/auth/provider/ldap.php +++ b/phpBB/includes/auth/provider/ldap.php @@ -22,7 +22,8 @@ if (!defined('IN_PHPBB')) * * @package auth */ -class phpbb_auth_provider_ldap implements phpbb_auth_provider_interface +class phpbb_auth_provider_ldap extends phpbb_auth_provider_base + implements phpbb_auth_provider_interface { /** * LDAP Authentication Constructor @@ -283,14 +284,6 @@ class phpbb_auth_provider_ldap implements phpbb_auth_provider_interface ); } - /** - * {@inheritdoc} - */ - public function autologin() - { - return; - } - /** * {@inheritdoc} */ @@ -367,20 +360,4 @@ class phpbb_auth_provider_ldap implements phpbb_auth_provider_interface { return str_replace(array('*', '\\', '(', ')'), array('\\*', '\\\\', '\\(', '\\)'), $string); } - - /** - * {@inheritdoc} - */ - public function logout($data, $new_session) - { - return; - } - - /** - * {@inheritdoc} - */ - public function validate_session($user) - { - return; - } } From 69c1b1aea89f3c705c19d69aab70c35a7d09747a Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 11:06:34 -0400 Subject: [PATCH 07/53] [feature/auth-refactor] Prevent fatal error in php < 5.3.23 PHPBB3-9734 --- phpBB/includes/auth/provider/base.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/phpBB/includes/auth/provider/base.php b/phpBB/includes/auth/provider/base.php index e053a1829b..7961bf4dde 100644 --- a/phpBB/includes/auth/provider/base.php +++ b/phpBB/includes/auth/provider/base.php @@ -30,11 +30,6 @@ abstract class phpbb_auth_provider_base implements phpbb_auth_provider_interface return; } - /** - * {@inheritdoc} - */ - abstract public function login($username, $password); - /** * {@inheritdoc} */ From 021eb083abc1fe11d18d756adf12f72b903b13ed Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 11:09:25 -0400 Subject: [PATCH 08/53] [feature/auth-refactor] Remove implements on classes extending base PHPBB3-9734 --- phpBB/includes/auth/provider/apache.php | 1 - phpBB/includes/auth/provider/db.php | 3 +-- phpBB/includes/auth/provider/ldap.php | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/phpBB/includes/auth/provider/apache.php b/phpBB/includes/auth/provider/apache.php index e0217725d6..2e80436f78 100644 --- a/phpBB/includes/auth/provider/apache.php +++ b/phpBB/includes/auth/provider/apache.php @@ -21,7 +21,6 @@ if (!defined('IN_PHPBB')) * @package auth */ class phpbb_auth_provider_apache extends phpbb_auth_provider_base - implements phpbb_auth_provider_interface { /** * Apache Authentication Constructor diff --git a/phpBB/includes/auth/provider/db.php b/phpBB/includes/auth/provider/db.php index b9b808cb5d..0934c56d9b 100644 --- a/phpBB/includes/auth/provider/db.php +++ b/phpBB/includes/auth/provider/db.php @@ -22,8 +22,7 @@ if (!defined('IN_PHPBB')) * * @package auth */ -class phpbb_auth_provider_db extends phpbb_auth_provider_base - implements phpbb_auth_provider_interface +class phpbb_auth_provider_db extends phpbb_auth_provider_base { /** diff --git a/phpBB/includes/auth/provider/ldap.php b/phpBB/includes/auth/provider/ldap.php index dbb569f466..e10986abf0 100644 --- a/phpBB/includes/auth/provider/ldap.php +++ b/phpBB/includes/auth/provider/ldap.php @@ -23,7 +23,6 @@ if (!defined('IN_PHPBB')) * @package auth */ class phpbb_auth_provider_ldap extends phpbb_auth_provider_base - implements phpbb_auth_provider_interface { /** * LDAP Authentication Constructor From ccef1ae5ab406f6e6c4110467e1077ab58135e30 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 11:26:59 -0400 Subject: [PATCH 09/53] [feature/auth-refactor] Change 'must' to 'should' PHPBB3-9734 --- phpBB/includes/auth/provider/base.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/includes/auth/provider/base.php b/phpBB/includes/auth/provider/base.php index 7961bf4dde..307988f00a 100644 --- a/phpBB/includes/auth/provider/base.php +++ b/phpBB/includes/auth/provider/base.php @@ -16,7 +16,7 @@ if (!defined('IN_PHPBB')) } /** - * Base authentication provider class that all other providers must implement. + * Base authentication provider class that all other providers should implement. * * @package auth */ From 177e340764ccb929d3ebfe978ce05ceba271f479 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 11:31:50 -0400 Subject: [PATCH 10/53] [feature/auth-refactor] Code style fix for doc blocks PHPBB3-9734 --- phpBB/includes/auth/provider/base.php | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/phpBB/includes/auth/provider/base.php b/phpBB/includes/auth/provider/base.php index 307988f00a..046674e55e 100644 --- a/phpBB/includes/auth/provider/base.php +++ b/phpBB/includes/auth/provider/base.php @@ -16,47 +16,47 @@ if (!defined('IN_PHPBB')) } /** - * Base authentication provider class that all other providers should implement. - * - * @package auth - */ +* Base authentication provider class that all other providers should implement. +* +* @package auth +*/ abstract class phpbb_auth_provider_base implements phpbb_auth_provider_interface { /** - * {@inheritdoc} - */ + * {@inheritdoc} + */ public function init() { return; } /** - * {@inheritdoc} - */ + * {@inheritdoc} + */ public function autologin() { return; } /** - * {@inheritdoc} - */ + * {@inheritdoc} + */ public function acp($new) { return; } /** - * {@inheritdoc} - */ + * {@inheritdoc} + */ public function logout($data, $new_session) { return; } /** - * {@inheritdoc} - */ + * {@inheritdoc} + */ public function validate_session($user) { return; From e674838d6951adb4df76195863df918f3b5852fd Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 12:06:48 -0400 Subject: [PATCH 11/53] [feature/auth-refactor] Remove full stop PHPBB3-9734 --- phpBB/includes/auth/provider/base.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/includes/auth/provider/base.php b/phpBB/includes/auth/provider/base.php index 046674e55e..f28f352e2c 100644 --- a/phpBB/includes/auth/provider/base.php +++ b/phpBB/includes/auth/provider/base.php @@ -16,7 +16,7 @@ if (!defined('IN_PHPBB')) } /** -* Base authentication provider class that all other providers should implement. +* Base authentication provider class that all other providers should implement * * @package auth */ From e2435f25d90913455e0b8ffd92fb0918cf6f376f Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 14:54:00 -0400 Subject: [PATCH 12/53] [feature/auth-refactor] Check that providers implement auth interface PHPBB3-9734 --- phpBB/includes/acp/acp_board.php | 6 ++++++ phpBB/includes/session.php | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index 24b913260b..19219f6323 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -563,6 +563,12 @@ class acp_board if (array_key_exists('auth.provider.' . $method, $auth_providers)) { $provider = $auth_providers['auth.provider.' . $method]; + + if (!($provider instanceof phpbb_auth_provider_interface)) + { + throw new \RuntimeException($provider . ' must implement phpbb_auth_provider_interface'); + } + if ($error = $provider->init()) { foreach ($old_auth_config as $config_name => $config_value) diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php index 66bf053f7d..e0585b1523 100644 --- a/phpBB/includes/session.php +++ b/phpBB/includes/session.php @@ -404,6 +404,12 @@ class phpbb_session $method = basename(trim($config['auth_method'])); $provider = $phpbb_container->get('auth.provider.' . $method); + + if (!($provider instanceof phpbb_auth_provider_interface)) + { + throw new \RuntimeException($provider . ' must implement phpbb_auth_provider_interface'); + } + $ret = $provider->validate_session($this->data); if ($ret !== null && !$ret) { From 9c0495664d8d89c5ee8e6187e40afbe353acf033 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 15:45:44 -0400 Subject: [PATCH 13/53] [feature/auth-refactor] Remove invalid providers from acp select PHPBB3-9734 --- phpBB/includes/acp/acp_board.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index 19219f6323..f142801b72 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -563,12 +563,6 @@ class acp_board if (array_key_exists('auth.provider.' . $method, $auth_providers)) { $provider = $auth_providers['auth.provider.' . $method]; - - if (!($provider instanceof phpbb_auth_provider_interface)) - { - throw new \RuntimeException($provider . ' must implement phpbb_auth_provider_interface'); - } - if ($error = $provider->init()) { foreach ($old_auth_config as $config_name => $config_value) @@ -686,6 +680,10 @@ class acp_board foreach($auth_providers as $key => $value) { + if (!($provider instanceof phpbb_auth_provider_interface)) + { + continue; + } $auth_plugins[] = str_replace('auth.provider.', '', $key); } From b0e6b1dd98a6458d9a6d1c40369dfd8402411077 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Fri, 5 Jul 2013 13:31:05 -0400 Subject: [PATCH 14/53] [ticket/11626] Create get_acp_template method for auth providers PHPBB3-11626 --- phpBB/config/auth_providers.yml | 1 + phpBB/includes/auth/provider/base.php | 8 ++++++++ phpBB/includes/auth/provider/interface.php | 13 +++++++++++++ phpBB/includes/auth/provider/ldap.php | 20 +++++++++++++++++++- 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/phpBB/config/auth_providers.yml b/phpBB/config/auth_providers.yml index bcc448e4d7..3136e60584 100644 --- a/phpBB/config/auth_providers.yml +++ b/phpBB/config/auth_providers.yml @@ -33,5 +33,6 @@ services: - @dbal.conn - @config - @user + - @template tags: - { name: auth.provider } diff --git a/phpBB/includes/auth/provider/base.php b/phpBB/includes/auth/provider/base.php index f28f352e2c..d1de9647df 100644 --- a/phpBB/includes/auth/provider/base.php +++ b/phpBB/includes/auth/provider/base.php @@ -46,6 +46,14 @@ abstract class phpbb_auth_provider_base implements phpbb_auth_provider_interface return; } + /** + * {@inheritdoc} + */ + public function get_acp_template($new_config) + { + return; + } + /** * {@inheritdoc} */ diff --git a/phpBB/includes/auth/provider/interface.php b/phpBB/includes/auth/provider/interface.php index 2d1935f8f0..fe2415ee25 100644 --- a/phpBB/includes/auth/provider/interface.php +++ b/phpBB/includes/auth/provider/interface.php @@ -71,6 +71,19 @@ interface phpbb_auth_provider_interface */ public function acp($new); + /** + * This function updates the template with variables related to the acp + * options with whatever configuraton values are passed to it as an array. + * It then returns the name of the acp file related to this authentication + * provider. + * @param array $new_config Contains the new configuration values that + * have been set in acp_board. + * @return string|null Returns null if not implemented or a string + * containing the name of the acp tempalte file for + * the authentication provider. + */ + public function get_acp_template($new_config); + /** * Performs additional actions during logout. * diff --git a/phpBB/includes/auth/provider/ldap.php b/phpBB/includes/auth/provider/ldap.php index e10986abf0..9fc064a847 100644 --- a/phpBB/includes/auth/provider/ldap.php +++ b/phpBB/includes/auth/provider/ldap.php @@ -30,8 +30,9 @@ class phpbb_auth_provider_ldap extends phpbb_auth_provider_base * @param phpbb_db_driver $db * @param phpbb_config $config * @param phpbb_user $user + * @param phpbb_template $template */ - public function __construct(phpbb_db_driver $db, phpbb_config $config, phpbb_user $user) + public function __construct(phpbb_db_driver $db, phpbb_config $config, phpbb_user $user, phpbb_template $template) { $this->db = $db; $this->config = $config; @@ -331,6 +332,23 @@ class phpbb_auth_provider_ldap extends phpbb_auth_provider_base ); } + /** + * {@inheritdoc} + */ + public function get_acp_template($new_config) + { + $this->template->assign_vars(array( + 'AUTH_LDAP_DN' => $new_config['ldap_base_dn'], + 'AUTH_LDAP_EMAIL' => $new_config['ldap_email'], + 'AUTH_LDAP_PASSORD' => $new_config['ldap_password'], + 'AUTH_LDAP_PORT' => $new_config['ldap_port'], + 'AUTH_LDAP_SERVER' => $new_config['ldap_server'], + 'AUTH_LDAP_UID' => $new_config['ldap_uid'], + 'AUTH_LDAP_USER' => $new_config['ldap_user'], + 'AUTH_LDAP_USER_FILTER' => $new_config['ldap_user_filter'], + )); + } + /** * Generates a filter string for ldap_search to find a user * From 80eb95bbb7685995ccc2cfa46280aef6e8ef024a Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Mon, 8 Jul 2013 13:51:00 -0400 Subject: [PATCH 15/53] [ticket/11626] LDAP Auth ACP Template File PHPBB3-11626 --- phpBB/adm/style/auth_provider_ldap.html | 32 +++++++++++++++++++++++++ phpBB/includes/auth/provider/ldap.php | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 phpBB/adm/style/auth_provider_ldap.html diff --git a/phpBB/adm/style/auth_provider_ldap.html b/phpBB/adm/style/auth_provider_ldap.html new file mode 100644 index 0000000000..81afa44373 --- /dev/null +++ b/phpBB/adm/style/auth_provider_ldap.html @@ -0,0 +1,32 @@ +
+

{L_LDAP_SERVER_EXPLAIN}
+
+
+
+

{L_LDAP_PORT_EXPLAIN}
+
+
+
+

{L_LDAP_DN_EXPLAIN}
+
+
+
+

{L_LDAP_UID_EXPLAIN}
+
+
+
+

{L_LDAP_USER_FILTER_EXPLAIN}
+
+
+
+

{L_LDAP_EMAIL_EXPLAIN}
+
+
+
+

{L_LDAP_USER_EXPLAIN}
+
+
+
+

{L_LDAP_PASSWORD_EXPLAIN}
+
+
diff --git a/phpBB/includes/auth/provider/ldap.php b/phpBB/includes/auth/provider/ldap.php index 9fc064a847..b063f6d682 100644 --- a/phpBB/includes/auth/provider/ldap.php +++ b/phpBB/includes/auth/provider/ldap.php @@ -347,6 +347,8 @@ class phpbb_auth_provider_ldap extends phpbb_auth_provider_base 'AUTH_LDAP_USER' => $new_config['ldap_user'], 'AUTH_LDAP_USER_FILTER' => $new_config['ldap_user_filter'], )); + + return 'auth_provider_ldap.html'; } /** From 29b472c2e5c8a878b592c53733cc57961d60a0af Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Mon, 8 Jul 2013 13:59:24 -0400 Subject: [PATCH 16/53] [ticket/11626] Include the template file in acp_board PHPBB3-11626 --- phpBB/adm/style/acp_board.html | 2 +- phpBB/includes/acp/acp_board.php | 8 +++----- phpBB/includes/auth/provider/ldap.php | 1 + 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/phpBB/adm/style/acp_board.html b/phpBB/adm/style/acp_board.html index 6b8ceb3ef6..df7f5e537b 100644 --- a/phpBB/adm/style/acp_board.html +++ b/phpBB/adm/style/acp_board.html @@ -34,7 +34,7 @@ - {auth_tpl.TPL} + diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index f142801b72..4c5f951bdc 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -655,15 +655,13 @@ class acp_board foreach ($auth_providers as $provider) { - $fields = $provider->acp($this->new_config); - - if ($fields['tpl']) + $auth_tpl = $provider->get_acp_template($this->new_config); + if ($auth_tpl) { $template->assign_block_vars('auth_tpl', array( - 'TPL' => $fields['tpl'], + 'TPL' => $provider->get_acp_template($this->new_config), )); } - unset($fields); } } } diff --git a/phpBB/includes/auth/provider/ldap.php b/phpBB/includes/auth/provider/ldap.php index b063f6d682..0164a60f2e 100644 --- a/phpBB/includes/auth/provider/ldap.php +++ b/phpBB/includes/auth/provider/ldap.php @@ -37,6 +37,7 @@ class phpbb_auth_provider_ldap extends phpbb_auth_provider_base $this->db = $db; $this->config = $config; $this->user = $user; + $this->template = $template; } /** From 60100b62f35cde7f5beafefbe9ff1a10ee81faa4 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Mon, 8 Jul 2013 14:02:53 -0400 Subject: [PATCH 17/53] [ticket/11626] Change interface to match functionality Changes the interface so that it matches the new functionality of phpbb_provider_auth_interface::acp(). PHPBB3-11626 --- phpBB/includes/acp/acp_board.php | 4 +-- phpBB/includes/auth/provider/base.php | 2 +- phpBB/includes/auth/provider/interface.php | 10 ++---- phpBB/includes/auth/provider/ldap.php | 42 ++-------------------- 4 files changed, 8 insertions(+), 50 deletions(-) diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index 4c5f951bdc..f01963c2ce 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -528,10 +528,10 @@ class acp_board $old_auth_config = array(); foreach ($auth_providers as $provider) { - if ($fields = $provider->acp($this->new_config)) + if ($fields = $provider->acp()) { // Check if we need to create config fields for this plugin and save config when submit was pressed - foreach ($fields['config'] as $field) + foreach ($fields as $field) { if (!isset($config[$field])) { diff --git a/phpBB/includes/auth/provider/base.php b/phpBB/includes/auth/provider/base.php index d1de9647df..7eaf8bb2d3 100644 --- a/phpBB/includes/auth/provider/base.php +++ b/phpBB/includes/auth/provider/base.php @@ -41,7 +41,7 @@ abstract class phpbb_auth_provider_base implements phpbb_auth_provider_interface /** * {@inheritdoc} */ - public function acp($new) + public function acp() { return; } diff --git a/phpBB/includes/auth/provider/interface.php b/phpBB/includes/auth/provider/interface.php index fe2415ee25..40c48026cf 100644 --- a/phpBB/includes/auth/provider/interface.php +++ b/phpBB/includes/auth/provider/interface.php @@ -60,16 +60,10 @@ interface phpbb_auth_provider_interface * This function is used to output any required fields in the authentication * admin panel. It also defines any required configuration table fields. * - * @param array $new Contains the new configuration values that have - * been set in acp_board. * @return array|null Returns null if not implemented or an array of the - * form: - * array( - * 'tpl' => string - * 'config' => array - * ) + * configuration fields of the provider. */ - public function acp($new); + public function acp(); /** * This function updates the template with variables related to the acp diff --git a/phpBB/includes/auth/provider/ldap.php b/phpBB/includes/auth/provider/ldap.php index 0164a60f2e..288fb617f5 100644 --- a/phpBB/includes/auth/provider/ldap.php +++ b/phpBB/includes/auth/provider/ldap.php @@ -288,48 +288,12 @@ class phpbb_auth_provider_ldap extends phpbb_auth_provider_base /** * {@inheritdoc} */ - public function acp($new) + + public function acp() { - $tpl = ' - -
-

' . $this->user->lang['LDAP_SERVER_EXPLAIN'] . '
-
-
-
-

' . $this->user->lang['LDAP_PORT_EXPLAIN'] . '
-
-
-
-

' . $this->user->lang['LDAP_DN_EXPLAIN'] . '
-
-
-
-

' . $this->user->lang['LDAP_UID_EXPLAIN'] . '
-
-
-
-

' . $this->user->lang['LDAP_USER_FILTER_EXPLAIN'] . '
-
-
-
-

' . $this->user->lang['LDAP_EMAIL_EXPLAIN'] . '
-
-
-
-

' . $this->user->lang['LDAP_USER_EXPLAIN'] . '
-
-
-
-

' . $this->user->lang['LDAP_PASSWORD_EXPLAIN'] . '
-
-
- '; - // These are fields required in the config table return array( - 'tpl' => $tpl, - 'config' => array('ldap_server', 'ldap_port', 'ldap_base_dn', 'ldap_uid', 'ldap_user_filter', 'ldap_email', 'ldap_user', 'ldap_password') + 'ldap_server', 'ldap_port', 'ldap_base_dn', 'ldap_uid', 'ldap_user_filter', 'ldap_email', 'ldap_user', 'ldap_password', ); } From 3431cb8ed7dae3e340d1763cde103c31e85496a6 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Mon, 8 Jul 2013 14:08:28 -0400 Subject: [PATCH 18/53] [ticket/11626] Call method only one time per provider PHPBB3-11626 --- phpBB/includes/acp/acp_board.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index f01963c2ce..b5f145a598 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -659,7 +659,7 @@ class acp_board if ($auth_tpl) { $template->assign_block_vars('auth_tpl', array( - 'TPL' => $provider->get_acp_template($this->new_config), + 'TPL' => $auth_tpl, )); } } From 3465867a4eee21b62707e9a28ad7831f8677363f Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Mon, 8 Jul 2013 14:57:25 -0400 Subject: [PATCH 19/53] [ticket/11626] Change the identifier template file in the template PHPBB3-11626 --- phpBB/adm/style/acp_board.html | 2 +- phpBB/includes/acp/acp_board.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/phpBB/adm/style/acp_board.html b/phpBB/adm/style/acp_board.html index df7f5e537b..cd4c25a756 100644 --- a/phpBB/adm/style/acp_board.html +++ b/phpBB/adm/style/acp_board.html @@ -34,7 +34,7 @@ - + diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index b5f145a598..5d824dea9e 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -659,7 +659,7 @@ class acp_board if ($auth_tpl) { $template->assign_block_vars('auth_tpl', array( - 'TPL' => $auth_tpl, + 'template_file' => $auth_tpl, )); } } From f24a8e5b8150bcd892585531585ef46f49db0ef7 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Mon, 8 Jul 2013 15:24:23 -0400 Subject: [PATCH 20/53] [ticket/11626] Make identifier uppercase per style requirements PHPBB3-11626 --- phpBB/adm/style/acp_board.html | 2 +- phpBB/includes/acp/acp_board.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/phpBB/adm/style/acp_board.html b/phpBB/adm/style/acp_board.html index cd4c25a756..1a09c4eee6 100644 --- a/phpBB/adm/style/acp_board.html +++ b/phpBB/adm/style/acp_board.html @@ -34,7 +34,7 @@ - + diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index 5d824dea9e..9285608ae2 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -659,7 +659,7 @@ class acp_board if ($auth_tpl) { $template->assign_block_vars('auth_tpl', array( - 'template_file' => $auth_tpl, + 'TEMPLATE_FILE' => $auth_tpl, )); } } From 91165e0758ccb47878fe33708ffeee5021614083 Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Thu, 11 Jul 2013 15:49:32 -0500 Subject: [PATCH 21/53] [ticket/11420] Fix tests PHPBB3-11420 --- tests/notification/fixtures/convert.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/notification/fixtures/convert.xml b/tests/notification/fixtures/convert.xml index a244070a95..98dd5fe0d5 100644 --- a/tests/notification/fixtures/convert.xml +++ b/tests/notification/fixtures/convert.xml @@ -6,12 +6,14 @@ username_clean user_notify_type user_notify_pm + user_permissions 1 1 1 0 0 + 2 @@ -19,6 +21,7 @@ 2 0 1 + 3 @@ -26,6 +29,7 @@ 3 1 0 + 4 @@ -33,6 +37,7 @@ 4 1 1 + 5 @@ -40,6 +45,7 @@ 5 2 0 + 6 @@ -47,6 +53,7 @@ 6 2 1 + From 9bfb567854b6c7487fcdc8dd5cd58748b0016911 Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Thu, 11 Jul 2013 15:58:02 -0500 Subject: [PATCH 22/53] [ticket/11420] Fix tests PHPBB3-11420 --- tests/notification/convert_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/notification/convert_test.php b/tests/notification/convert_test.php index e07c144e16..4d00fa0a1e 100644 --- a/tests/notification/convert_test.php +++ b/tests/notification/convert_test.php @@ -27,7 +27,7 @@ class phpbb_notification_convert_test extends phpbb_database_test_case $this->db = $this->new_dbal(); - $this->migration = new phpbb_db_migration_data_310_notifications3( + $this->migration = new phpbb_db_migration_data_310_notification_options_reconvert( new phpbb_config(array()), $this->db, new phpbb_db_tools($this->db), From a64a042830d3b0189e35ff0abe0649bff7105a1b Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 17:39:34 -0400 Subject: [PATCH 23/53] [feature/auth-refactor] Fix typo PHPBB3-9734 --- phpBB/includes/acp/acp_board.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index f142801b72..7a3c4990d5 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -680,7 +680,7 @@ class acp_board foreach($auth_providers as $key => $value) { - if (!($provider instanceof phpbb_auth_provider_interface)) + if (!($value instanceof phpbb_auth_provider_interface)) { continue; } From f4f29a1c0ae04c3a3d41aee822d7c858f39f5295 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 17:43:20 -0400 Subject: [PATCH 24/53] [feature/auth-refactor] Fix style issue PHPBB3-9734 --- phpBB/includes/acp/acp_board.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index 7a3c4990d5..7627ff0b56 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -678,7 +678,7 @@ class acp_board $auth_plugins = array(); $auth_providers = $phpbb_container->get('auth.provider_collection'); - foreach($auth_providers as $key => $value) + foreach ($auth_providers as $key => $value) { if (!($value instanceof phpbb_auth_provider_interface)) { From c17f8a5d373e103fd397766358e3ff7fc3891192 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 18:15:22 -0400 Subject: [PATCH 25/53] [feature/auth-refactor] Test that acp_board excludes invalid providers PHPBB3-9734 --- tests/acp_board/select_auth_method_test.php | 43 +++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 tests/acp_board/select_auth_method_test.php diff --git a/tests/acp_board/select_auth_method_test.php b/tests/acp_board/select_auth_method_test.php new file mode 100644 index 0000000000..f81cf19db3 --- /dev/null +++ b/tests/acp_board/select_auth_method_test.php @@ -0,0 +1,43 @@ +set('auth.provider_collection', array( + 'auth.provider.acp_board_valid' => new phpbb_auth_provider_acp_board_valid, + 'auth.provider.acp_board_invalid' => new phpbb_auth_provider_acp_board_invalid, + ) + ); + + $acp_board = new acp_board(); + + $expected = ''; + $this->assertEquals($expected, $acp_board->select_auth_method('acp_board_valid')); + } +} + +class phpbb_auth_provider_acp_board_valid extends phpbb_auth_provider_base +{ + public function login($username, $password) + { + return; + } +} + +class phpbb_auth_provider_acp_board_invalid +{ + +} From 0fbf8f8c81e2ec3eddda58498c52812cf8e4a419 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 18:21:50 -0400 Subject: [PATCH 26/53] [feature/auth-refactor] Move test classes into separate directory PHPBB3-9734 --- tests/acp_board/auth_provider/invalid.php | 13 +++++++++++++ tests/acp_board/auth_provider/valid.php | 16 ++++++++++++++++ tests/acp_board/select_auth_method_test.php | 15 ++------------- 3 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 tests/acp_board/auth_provider/invalid.php create mode 100644 tests/acp_board/auth_provider/valid.php diff --git a/tests/acp_board/auth_provider/invalid.php b/tests/acp_board/auth_provider/invalid.php new file mode 100644 index 0000000000..c12851afe6 --- /dev/null +++ b/tests/acp_board/auth_provider/invalid.php @@ -0,0 +1,13 @@ +assertEquals($expected, $acp_board->select_auth_method('acp_board_valid')); } } - -class phpbb_auth_provider_acp_board_valid extends phpbb_auth_provider_base -{ - public function login($username, $password) - { - return; - } -} - -class phpbb_auth_provider_acp_board_invalid -{ - -} From 8b2ca35b54e1678c443082b8945a393fb5d58e35 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 18:25:04 -0400 Subject: [PATCH 27/53] [feature/auth-refactor] Code style change PHPBB3-9734 --- tests/acp_board/select_auth_method_test.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/acp_board/select_auth_method_test.php b/tests/acp_board/select_auth_method_test.php index 922ddda1d6..8453ec6b3b 100644 --- a/tests/acp_board/select_auth_method_test.php +++ b/tests/acp_board/select_auth_method_test.php @@ -7,9 +7,9 @@ * */ -require_once dirname(__FILE__).'/../../phpBB/includes/acp/acp_board.php'; -require_once dirname(__FILE__).'/auth_provider/invalid.php'; -require_once dirname(__FILE__).'/auth_provider/valid.php'; +require_once dirname(__FILE__) . '/../../phpBB/includes/acp/acp_board.php'; +require_once dirname(__FILE__) . '/auth_provider/invalid.php'; +require_once dirname(__FILE__) . '/auth_provider/valid.php'; class phpbb_acp_board_select_auth_method_test extends PHPUnit_Framework_TestCase { From 4bd676e4aedd6bc0737781a61bbc6d8dc0b26809 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 18:26:39 -0400 Subject: [PATCH 28/53] [feature/auth-refactor] Test selecting invalid provider as well PHPBB3-9734 --- tests/acp_board/select_auth_method_test.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/acp_board/select_auth_method_test.php b/tests/acp_board/select_auth_method_test.php index 8453ec6b3b..d93522d93a 100644 --- a/tests/acp_board/select_auth_method_test.php +++ b/tests/acp_board/select_auth_method_test.php @@ -21,12 +21,14 @@ class phpbb_acp_board_select_auth_method_test extends PHPUnit_Framework_TestCase $phpbb_container->set('auth.provider_collection', array( 'auth.provider.acp_board_valid' => new phpbb_auth_provider_acp_board_valid, 'auth.provider.acp_board_invalid' => new phpbb_auth_provider_acp_board_invalid, - ) - ); + )); $acp_board = new acp_board(); $expected = ''; $this->assertEquals($expected, $acp_board->select_auth_method('acp_board_valid')); + + $expected = ''; + $this->assertEquals($expected, $acp_board->select_auth_method('acp_board_invalid')); } } From e5f1e0f98471f5b757c22b85bf38be4d505c4f72 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 18:35:41 -0400 Subject: [PATCH 29/53] [feature/auth-refactor] DataProvider for acp_board test PHPBB3-9734 --- tests/acp_board/select_auth_method_test.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/tests/acp_board/select_auth_method_test.php b/tests/acp_board/select_auth_method_test.php index d93522d93a..2172436aa2 100644 --- a/tests/acp_board/select_auth_method_test.php +++ b/tests/acp_board/select_auth_method_test.php @@ -11,9 +11,20 @@ require_once dirname(__FILE__) . '/../../phpBB/includes/acp/acp_board.php'; require_once dirname(__FILE__) . '/auth_provider/invalid.php'; require_once dirname(__FILE__) . '/auth_provider/valid.php'; -class phpbb_acp_board_select_auth_method_test extends PHPUnit_Framework_TestCase +class phpbb_acp_board_select_auth_method_test extends phpbb_test_case { - public function test_invalid_provider() + public static function function_return() + { + return array( + array('acp_board_valid', ''), + array('acp_board_invalid', ''), + ); + } + + /** + * @dataProvider function_return + */ + public function test_invalid_provider($selected, $expected) { global $phpbb_container; $phpbb_container = new phpbb_mock_container_builder(); @@ -25,10 +36,6 @@ class phpbb_acp_board_select_auth_method_test extends PHPUnit_Framework_TestCase $acp_board = new acp_board(); - $expected = ''; - $this->assertEquals($expected, $acp_board->select_auth_method('acp_board_valid')); - - $expected = ''; - $this->assertEquals($expected, $acp_board->select_auth_method('acp_board_invalid')); + $this->assertEquals($expected, $acp_board->select_auth_method($selected)); } } From 79f0866b781853769c561138bc1a5646a9287b81 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 18:47:42 -0400 Subject: [PATCH 30/53] [feature/auth-refactor] Changes PHPBB3-9734 --- tests/acp_board/select_auth_method_test.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tests/acp_board/select_auth_method_test.php b/tests/acp_board/select_auth_method_test.php index 2172436aa2..34ca013824 100644 --- a/tests/acp_board/select_auth_method_test.php +++ b/tests/acp_board/select_auth_method_test.php @@ -13,7 +13,9 @@ require_once dirname(__FILE__) . '/auth_provider/valid.php'; class phpbb_acp_board_select_auth_method_test extends phpbb_test_case { - public static function function_return() + protected $acp_board; + + public static function select_auth_method_data() { return array( array('acp_board_valid', ''), @@ -21,10 +23,7 @@ class phpbb_acp_board_select_auth_method_test extends phpbb_test_case ); } - /** - * @dataProvider function_return - */ - public function test_invalid_provider($selected, $expected) + public function setUp() { global $phpbb_container; $phpbb_container = new phpbb_mock_container_builder(); @@ -34,8 +33,14 @@ class phpbb_acp_board_select_auth_method_test extends phpbb_test_case 'auth.provider.acp_board_invalid' => new phpbb_auth_provider_acp_board_invalid, )); - $acp_board = new acp_board(); + $this->acp_board = new acp_board(); + } - $this->assertEquals($expected, $acp_board->select_auth_method($selected)); + /** + * @dataProvider select_auth_method_data + */ + public function test_select_auth_method($selected, $expected) + { + $this->assertEquals($expected, $this->acp_board->select_auth_method($selected)); } } From b9f33e5a872af35128629872b5bb60032d25f932 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Thu, 11 Jul 2013 21:57:03 -0400 Subject: [PATCH 31/53] [feature/auth-refactor] Add parent::setUp() in setUp() PHPBB3-9734 --- tests/acp_board/select_auth_method_test.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/acp_board/select_auth_method_test.php b/tests/acp_board/select_auth_method_test.php index 34ca013824..91aa5d1232 100644 --- a/tests/acp_board/select_auth_method_test.php +++ b/tests/acp_board/select_auth_method_test.php @@ -25,6 +25,8 @@ class phpbb_acp_board_select_auth_method_test extends phpbb_test_case public function setUp() { + parent::setUp(); + global $phpbb_container; $phpbb_container = new phpbb_mock_container_builder(); From be020646f4f9bd6d7ed44f048718b9de9959f89f Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Fri, 12 Jul 2013 09:37:24 -0500 Subject: [PATCH 32/53] [ticket/11660] Fix bugs from bugs in #11651 (missing vars, db->sql_connect) PHPBB3-11660 --- phpBB/includes/functions_container.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/phpBB/includes/functions_container.php b/phpBB/includes/functions_container.php index 0575f00a0b..f63dde0614 100644 --- a/phpBB/includes/functions_container.php +++ b/phpBB/includes/functions_container.php @@ -33,7 +33,10 @@ function phpbb_bootstrap_db_connection($config_file) require($config_file); $dbal_driver_class = phpbb_convert_30_dbms_to_31($dbms); - return new $dbal_driver_class($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, defined('PHPBB_DB_NEW_LINK')); + $db = new $dbal_driver_class(); + $db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, defined('PHPBB_DB_NEW_LINK')); + + return $db; } /** @@ -56,9 +59,10 @@ function phpbb_bootstrap_table_prefix($config_file) * Used to bootstrap the container. * * @param string $config_file +* @param string $phpbb_root_path * @return array enabled extensions */ -function phpbb_bootstrap_enabled_exts($config_file) +function phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path) { $db = phpbb_bootstrap_db_connection($config_file); $table_prefix = phpbb_bootstrap_table_prefix($config_file); @@ -142,7 +146,7 @@ function phpbb_create_install_container($phpbb_root_path, $php_ext) */ function phpbb_create_compiled_container($config_file, array $extensions, array $passes, $phpbb_root_path, $php_ext) { - $installed_exts = phpbb_bootstrap_enabled_exts($config_file); + $installed_exts = phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path); // Now pass the enabled extension paths into the ext compiler extension $extensions[] = new phpbb_di_extension_ext($installed_exts); @@ -179,7 +183,7 @@ function phpbb_create_dumped_container($config_file, array $extensions, array $p return new phpbb_cache_container(); } - $container = phpbb_create_compiled_container($extensions, $passes, $phpbb_root_path, $php_ext); + $container = phpbb_create_compiled_container($config_file, $extensions, $passes, $phpbb_root_path, $php_ext); // Lastly, we create our cached container class $dumper = new PhpDumper($container); @@ -212,7 +216,7 @@ function phpbb_create_dumped_container($config_file, array $extensions, array $p function phpbb_create_dumped_container_unless_debug($config_file, array $extensions, array $passes, $phpbb_root_path, $php_ext) { $container_factory = defined('DEBUG') ? 'phpbb_create_compiled_container' : 'phpbb_create_dumped_container'; - return $container_factory($extensions, $passes, $phpbb_root_path, $php_ext); + return $container_factory($config_file, $extensions, $passes, $phpbb_root_path, $php_ext); } /** From fa8f62a604d5d885f6126619ca1dc3db7b0731a7 Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Fri, 12 Jul 2013 09:14:36 -0500 Subject: [PATCH 33/53] [ticket/11420] Fix tests PHPBB3-11420 --- tests/notification/fixtures/convert.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/notification/fixtures/convert.xml b/tests/notification/fixtures/convert.xml index 98dd5fe0d5..3f0a065cc4 100644 --- a/tests/notification/fixtures/convert.xml +++ b/tests/notification/fixtures/convert.xml @@ -7,6 +7,9 @@ user_notify_type user_notify_pm user_permissions + user_sig + user_occ + user_interests 1 1 @@ -14,6 +17,9 @@ 0 0 + + + 2 @@ -22,6 +28,9 @@ 0 1 + + + 3 @@ -30,6 +39,9 @@ 1 0 + + + 4 @@ -38,6 +50,9 @@ 1 1 + + + 5 @@ -46,6 +61,9 @@ 2 0 + + + 6 @@ -54,6 +72,9 @@ 2 1 + + + From f4b7cbd9766fff3e4232c5514da18c8fc3ff102b Mon Sep 17 00:00:00 2001 From: Andreas Fischer Date: Fri, 12 Jul 2013 17:10:18 +0200 Subject: [PATCH 34/53] [ticket/11662] Typos: occured -> occurred PHPBB3-11662 --- phpBB/includes/functions_jabber.php | 2 +- phpBB/language/en/acp/common.php | 2 +- phpBB/language/en/common.php | 6 +++--- phpBB/language/en/install.php | 2 +- tests/template/template_test.php | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/phpBB/includes/functions_jabber.php b/phpBB/includes/functions_jabber.php index 16dce16a72..2054124a4e 100644 --- a/phpBB/includes/functions_jabber.php +++ b/phpBB/includes/functions_jabber.php @@ -250,7 +250,7 @@ class jabber return true; } - // Apparently an error occured... + // Apparently an error occurred... $this->add_to_log('Error: open_socket() - ' . $errorstr); return false; } diff --git a/phpBB/language/en/acp/common.php b/phpBB/language/en/acp/common.php index e64ba3c371..00155dd335 100644 --- a/phpBB/language/en/acp/common.php +++ b/phpBB/language/en/acp/common.php @@ -572,7 +572,7 @@ $lang = array_merge($lang, array( 'LOG_FORUM_MOVE_UP' => 'Moved forum %1$s above %2$s', 'LOG_FORUM_SYNC' => 'Re-synchronised forum
» %s', - 'LOG_GENERAL_ERROR' => 'A general error occured: %1$s
» %2$s', + 'LOG_GENERAL_ERROR' => 'A general error occurred: %1$s
» %2$s', 'LOG_GROUP_CREATED' => 'New usergroup created
» %s', 'LOG_GROUP_DEFAULTS' => 'Group “%1$s” made default for members
» %2$s', diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php index c986e8213d..f37f6d3b30 100644 --- a/phpBB/language/en/common.php +++ b/phpBB/language/en/common.php @@ -172,8 +172,8 @@ $lang = array_merge($lang, array( 'ERR_JAB_AUTH' => 'Could not authorise on Jabber server.', 'ERR_JAB_CONNECT' => 'Could not connect to Jabber server.', 'ERR_UNABLE_TO_LOGIN' => 'The specified username or password is incorrect.', - 'ERR_UNWATCHING' => 'An error occured while trying to unsubscribe.', - 'ERR_WATCHING' => 'An error occured while trying to subscribe.', + 'ERR_UNWATCHING' => 'An error occurred while trying to unsubscribe.', + 'ERR_WATCHING' => 'An error occurred while trying to subscribe.', 'ERR_WRONG_PATH_TO_PHPBB' => 'The phpBB path specified appears to be invalid.', 'EXPAND_VIEW' => 'Expand view', 'EXTENSION' => 'Extension', @@ -298,7 +298,7 @@ $lang = array_merge($lang, array( 'LAST_VISIT' => 'Last visit', 'LDAP_NO_LDAP_EXTENSION' => 'LDAP extension not available.', 'LDAP_NO_SERVER_CONNECTION' => 'Could not connect to LDAP server.', - 'LDAP_SEARCH_FAILED' => 'An error occured while searching the LDAP directory.', + 'LDAP_SEARCH_FAILED' => 'An error occurred while searching the LDAP directory.', 'LEGEND' => 'Legend', 'LOCATION' => 'Location', 'LOCK_POST' => 'Lock post', diff --git a/phpBB/language/en/install.php b/phpBB/language/en/install.php index bbf407f1dc..bdc51a5712 100644 --- a/phpBB/language/en/install.php +++ b/phpBB/language/en/install.php @@ -363,7 +363,7 @@ $lang = array_merge($lang, array( 'UNAVAILABLE' => 'Unavailable', 'UNWRITABLE' => 'Unwritable', 'UPDATE_TOPICS_POSTED' => 'Generating topics posted information', - 'UPDATE_TOPICS_POSTED_ERR' => 'An error occured while generating topics posted information. You can retry this step in the ACP after the conversion process is completed.', + 'UPDATE_TOPICS_POSTED_ERR' => 'An error occurred while generating topics posted information. You can retry this step in the ACP after the conversion process is completed.', 'VERIFY_OPTIONS' => 'Verifying conversion options', 'VERSION' => 'Version', diff --git a/tests/template/template_test.php b/tests/template/template_test.php index fd68124c89..94ec2ab8a7 100644 --- a/tests/template/template_test.php +++ b/tests/template/template_test.php @@ -32,7 +32,7 @@ class phpbb_template_template_test extends phpbb_test_case } catch (Exception $exception) { - // reset the error level even when an error occured + // reset the error level even when an error occurred // PHPUnit turns trigger_error into exceptions as well error_reporting($error_level); ob_end_clean(); From 658b378b6375aec3df9a4f4a576428ba817cdda8 Mon Sep 17 00:00:00 2001 From: Andreas Fischer Date: Fri, 12 Jul 2013 17:51:29 +0200 Subject: [PATCH 35/53] [ticket/11662] Typos: occured -> occurred PHPBB3-11662 --- phpBB/includes/db/migration/migration.php | 2 +- phpBB/includes/search/fulltext_mysql.php | 2 +- phpBB/includes/search/fulltext_postgres.php | 2 +- phpBB/language/en/migrator.php | 2 +- tests/template/template_test_case.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/phpBB/includes/db/migration/migration.php b/phpBB/includes/db/migration/migration.php index 5f14a6953c..0ffa96fd14 100644 --- a/phpBB/includes/db/migration/migration.php +++ b/phpBB/includes/db/migration/migration.php @@ -44,7 +44,7 @@ abstract class phpbb_db_migration /** @var string */ protected $php_ext; - /** @var array Errors, if any occured */ + /** @var array Errors, if any occurred */ protected $errors; /** @var array List of queries executed through $this->sql_query() */ diff --git a/phpBB/includes/search/fulltext_mysql.php b/phpBB/includes/search/fulltext_mysql.php index aa493c3281..b16a7df606 100644 --- a/phpBB/includes/search/fulltext_mysql.php +++ b/phpBB/includes/search/fulltext_mysql.php @@ -140,7 +140,7 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base /** * Checks for correct MySQL version and stores min/max word length in the config * - * @return string|bool Language key of the error/incompatiblity occured + * @return string|bool Language key of the error/incompatiblity occurred */ public function init() { diff --git a/phpBB/includes/search/fulltext_postgres.php b/phpBB/includes/search/fulltext_postgres.php index 496a29f5a3..758c3ba061 100644 --- a/phpBB/includes/search/fulltext_postgres.php +++ b/phpBB/includes/search/fulltext_postgres.php @@ -185,7 +185,7 @@ class phpbb_search_fulltext_postgres extends phpbb_search_base /** * Checks for correct PostgreSQL version and stores min/max word length in the config * - * @return string|bool Language key of the error/incompatiblity occured + * @return string|bool Language key of the error/incompatiblity occurred */ public function init() { diff --git a/phpBB/language/en/migrator.php b/phpBB/language/en/migrator.php index f94c27be8c..34dcbf4c52 100644 --- a/phpBB/language/en/migrator.php +++ b/phpBB/language/en/migrator.php @@ -45,7 +45,7 @@ $lang = array_merge($lang, array( 'MIGRATION_NOT_FULFILLABLE' => 'The migration "%1$s" is not fulfillable, missing migration "%2$s".', 'MIGRATION_SCHEMA_DONE' => 'Installed Schema: %s', - 'MODULE_ERROR' => 'An error occured while creating a module: %s', + 'MODULE_ERROR' => 'An error occurred while creating a module: %s', 'MODULE_INFO_FILE_NOT_EXIST' => 'A required module info file is missing: %2$s', 'MODULE_NOT_EXIST' => 'A required module does not exist: %s', diff --git a/tests/template/template_test_case.php b/tests/template/template_test_case.php index 4a7bf8d168..6d87e5ebc0 100644 --- a/tests/template/template_test_case.php +++ b/tests/template/template_test_case.php @@ -33,7 +33,7 @@ class phpbb_template_template_test_case extends phpbb_test_case } catch (Exception $exception) { - // reset output buffering even when an error occured + // reset output buffering even when an error occurred // PHPUnit turns trigger_error into exceptions as well ob_end_clean(); throw $exception; From 7e20b711806abf247209ea0211a45a8083f6ad3b Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Fri, 12 Jul 2013 11:47:34 -0500 Subject: [PATCH 36/53] [ticket/11665] Can't change file names already sent to set_filenames PHPBB3-11665 --- phpBB/includes/template/twig/twig.php | 2 +- tests/template/template_parser_test.php | 29 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 tests/template/template_parser_test.php diff --git a/phpBB/includes/template/twig/twig.php b/phpBB/includes/template/twig/twig.php index f5638972a3..92a37d1634 100644 --- a/phpBB/includes/template/twig/twig.php +++ b/phpBB/includes/template/twig/twig.php @@ -172,7 +172,7 @@ class phpbb_template_twig implements phpbb_template */ public function set_filenames(array $filename_array) { - $this->filenames = array_merge($filename_array, $this->filenames); + $this->filenames = array_merge($this->filenames, $filename_array); return $this; } diff --git a/tests/template/template_parser_test.php b/tests/template/template_parser_test.php new file mode 100644 index 0000000000..aa7a9412d6 --- /dev/null +++ b/tests/template/template_parser_test.php @@ -0,0 +1,29 @@ +template->set_filenames(array( + 'basic' => 'basic.html', + )); + + $this->assertEquals("passpasspass", str_replace(array("\n", "\r", "\t"), '', $this->template->assign_display('basic'))); + + $this->template->set_filenames(array( + 'basic' => 'if.html', + )); + + $this->assertEquals("03!false", str_replace(array("\n", "\r", "\t"), '', $this->template->assign_display('basic'))); + } +} From df3f0a212ee55fbcd06f25abed23f9f1d1ca01ae Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Fri, 12 Jul 2013 11:22:10 -0500 Subject: [PATCH 37/53] [ticket/11664] Stop creating php.html file in root path in tests Also includephp_absolute.html PHPBB3-11664 --- tests/template/includephp_test.php | 2 +- tests/template/template_test.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/template/includephp_test.php b/tests/template/includephp_test.php index a3dc9bd5c5..ff7b890d11 100644 --- a/tests/template/includephp_test.php +++ b/tests/template/includephp_test.php @@ -39,7 +39,7 @@ class phpbb_template_includephp_test extends phpbb_template_template_test_case $this->assertTrue(phpbb_is_absolute($path_to_php)); $template_text = "Path is absolute.\n"; - $cache_dir = dirname($phpbb_root_path . 'cache') . '/'; + $cache_dir = $phpbb_root_path . 'cache/'; $fp = fopen($cache_dir . 'includephp_absolute.html', 'w'); fputs($fp, $template_text); fclose($fp); diff --git a/tests/template/template_test.php b/tests/template/template_test.php index fedfeba33a..802f0c19ba 100644 --- a/tests/template/template_test.php +++ b/tests/template/template_test.php @@ -403,7 +403,7 @@ class phpbb_template_template_test extends phpbb_template_template_test_case $template_text = 'echo "test";'; - $cache_dir = dirname($phpbb_root_path . 'cache') . '/'; + $cache_dir = $phpbb_root_path . 'cache/'; $fp = fopen($cache_dir . 'php.html', 'w'); fputs($fp, $template_text); fclose($fp); From 27b550ae66ccc3257eea92a8f7b96e3d9c729a4c Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Fri, 12 Jul 2013 12:10:57 -0500 Subject: [PATCH 38/53] [ticket/11665] Fix test class name PHPBB3-11665 --- tests/template/template_parser_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/template/template_parser_test.php b/tests/template/template_parser_test.php index aa7a9412d6..c200770adf 100644 --- a/tests/template/template_parser_test.php +++ b/tests/template/template_parser_test.php @@ -10,7 +10,7 @@ require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/template_test_case.php'; -class phpbb_template_template_test extends phpbb_template_template_test_case +class phpbb_template_template_parser_test extends phpbb_template_template_test_case { public function test_set_filenames() { From da8e35ac77c5d78f327d08fa1a9d0ff21ed38e83 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Fri, 12 Jul 2013 13:40:30 -0400 Subject: [PATCH 39/53] [ticket/11548] Fix incorrect usage of array_map on acp groups page The array_map was only ran on small parts of the actual error array instead of the whole one. This resulted in the output of the language variables' names rather than their actual value. PHPBB3-11548 --- phpBB/includes/acp/acp_groups.php | 3 +- tests/functional/common_groups_test.php | 49 +++++++++++++++++++++++++ tests/functional/ucp_groups_test.php | 49 ------------------------- 3 files changed, 51 insertions(+), 50 deletions(-) diff --git a/phpBB/includes/acp/acp_groups.php b/phpBB/includes/acp/acp_groups.php index 9b9ea38e07..c9d476b8ae 100644 --- a/phpBB/includes/acp/acp_groups.php +++ b/phpBB/includes/acp/acp_groups.php @@ -437,7 +437,7 @@ class acp_groups if ($validation_error = validate_data($submit_ary, $validation_checks)) { // Replace "error" string with its real, localised form - $error = array_merge($error, array_map(array(&$user, 'lang'), $validation_error)); + $error = array_merge($error, $validation_error); } if (!sizeof($error)) @@ -530,6 +530,7 @@ class acp_groups if (sizeof($error)) { + $error = array_map(array(&$user, 'lang'), $error); $group_rank = $submit_ary['rank']; $group_desc_data = array( diff --git a/tests/functional/common_groups_test.php b/tests/functional/common_groups_test.php index 7c88ec900d..427a930cb9 100644 --- a/tests/functional/common_groups_test.php +++ b/tests/functional/common_groups_test.php @@ -14,6 +14,26 @@ abstract class phpbb_functional_common_groups_test extends phpbb_functional_test { abstract protected function get_url(); + // Enable all avatars in the ACP + protected function enable_all_avatars() + { + $this->add_lang('acp/board'); + + $crawler = self::request('GET', 'adm/index.php?i=board&mode=avatar&sid=' . $this->sid); + // Check the default entries we should have + $this->assertContains($this->lang('ALLOW_REMOTE'), $crawler->text()); + $this->assertContains($this->lang('ALLOW_AVATARS'), $crawler->text()); + $this->assertContains($this->lang('ALLOW_LOCAL'), $crawler->text()); + + // Now start setting the needed settings + $form = $crawler->selectButton($this->lang('SUBMIT'))->form(); + $form['config[allow_avatar_local]']->select(1); + $form['config[allow_avatar_remote]']->select(1); + $form['config[allow_avatar_remote_upload]']->select(1); + $crawler = self::submit($form); + $this->assertContains($this->lang('CONFIG_UPDATED'), $crawler->text()); + } + public function groups_manage_test_data() { return array( @@ -41,4 +61,33 @@ abstract class phpbb_functional_common_groups_test extends phpbb_functional_test $crawler = self::submit($form); $this->assertContains($this->lang($expected), $crawler->text()); } + + public function group_avatar_min_max_data() + { + return array( + array('uploadurl', 'foo', 'TOO_SHORT'), + array('uploadurl', 'foobar', 'AVATAR_URL_INVALID'), + array('uploadurl', str_repeat('f', 256), 'TOO_LONG'), + array('remotelink', 'foo', 'TOO_SHORT'), + array('remotelink', 'foobar', 'AVATAR_URL_INVALID'), + array('remotelink', str_repeat('f', 256), 'TOO_LONG'), + ); + } + + /** + * @dataProvider group_avatar_min_max_data + */ + public function test_group_avatar_min_max($form_name, $input, $expected) + { + $this->login(); + $this->admin_login(); + $this->add_lang(array('ucp', 'acp/groups')); + $this->enable_all_avatars(); + + $crawler = self::request('GET', $this->get_url() . '&g=5&sid=' . $this->sid); + $form = $crawler->selectButton($this->lang('SUBMIT'))->form(); + $form[$form_name]->setValue($input); + $crawler = self::submit($form); + $this->assertContains($this->lang($expected), $crawler->text()); + } } diff --git a/tests/functional/ucp_groups_test.php b/tests/functional/ucp_groups_test.php index 0d9ef22798..9c6b1edc5e 100644 --- a/tests/functional/ucp_groups_test.php +++ b/tests/functional/ucp_groups_test.php @@ -18,53 +18,4 @@ class phpbb_functional_ucp_groups_test extends phpbb_functional_common_groups_te { return 'ucp.php?i=groups&mode=manage&action=edit'; } - - // Enable all avatars in the ACP - private function enable_all_avatars() - { - $this->add_lang('acp/board'); - - $crawler = self::request('GET', 'adm/index.php?i=board&mode=avatar&sid=' . $this->sid); - // Check the default entries we should have - $this->assertContains($this->lang('ALLOW_REMOTE'), $crawler->text()); - $this->assertContains($this->lang('ALLOW_AVATARS'), $crawler->text()); - $this->assertContains($this->lang('ALLOW_LOCAL'), $crawler->text()); - - // Now start setting the needed settings - $form = $crawler->selectButton($this->lang('SUBMIT'))->form(); - $form['config[allow_avatar_local]']->select(1); - $form['config[allow_avatar_remote]']->select(1); - $form['config[allow_avatar_remote_upload]']->select(1); - $crawler = self::submit($form); - $this->assertContains($this->lang('CONFIG_UPDATED'), $crawler->text()); - } - - public function group_avatar_min_max_data() - { - return array( - array('uploadurl', 'foo', 'TOO_SHORT'), - array('uploadurl', 'foobar', 'AVATAR_URL_INVALID'), - array('uploadurl', str_repeat('f', 256), 'TOO_LONG'), - array('remotelink', 'foo', 'TOO_SHORT'), - array('remotelink', 'foobar', 'AVATAR_URL_INVALID'), - array('remotelink', str_repeat('f', 256), 'TOO_LONG'), - ); - } - - /** - * @dataProvider group_avatar_min_max_data - */ - public function test_group_avatar_min_max($form_name, $input, $expected) - { - $this->login(); - $this->admin_login(); - $this->add_lang(array('ucp', 'acp/groups')); - $this->enable_all_avatars(); - - $crawler = self::request('GET', $this->get_url() . '&g=5&sid=' . $this->sid); - $form = $crawler->selectButton($this->lang('SUBMIT'))->form(); - $form[$form_name]->setValue($input); - $crawler = self::submit($form); - $this->assertContains($this->lang($expected), $crawler->text()); - } } From adff2fb254285e54f899f3a8604e1116cb11573c Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Fri, 12 Jul 2013 14:35:17 -0400 Subject: [PATCH 40/53] [ticket/11548] Check upload avatar URL the same way as in phpBB 3.0 The upload avatar URL was checked for its length in phpBB 3.0. Additionally, starting with the new avatar system in phpBB 3.1, the URL was checked to prevent improper URLs being submitted. This minor change is needed for proper testing of the ucp and acp groups pages. PHPBB3-11548 --- phpBB/includes/avatar/driver/upload.php | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/phpBB/includes/avatar/driver/upload.php b/phpBB/includes/avatar/driver/upload.php index baf51f61c1..685ac4f349 100644 --- a/phpBB/includes/avatar/driver/upload.php +++ b/phpBB/includes/avatar/driver/upload.php @@ -77,6 +77,32 @@ class phpbb_avatar_driver_upload extends phpbb_avatar_driver } elseif (!empty($this->config['allow_avatar_remote_upload']) && !empty($url)) { + if (!preg_match('#^(http|https|ftp)://#i', $url)) + { + $url = 'http://' . $url; + } + + if (!function_exists('validate_data')) + { + require($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext); + } + + $validate_array = validate_data( + array( + 'url' => $url, + ), + array( + 'url' => array('string', true, 5, 255), + ) + ); + + $error = array_merge($error, $validate_array); + + if (!empty($error)) + { + return false; + } + $file = $upload->remote_upload($url); } else From 01b9f9f9b6f14d602ce57a37f0969707d1f0c41b Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Fri, 12 Jul 2013 14:38:18 -0400 Subject: [PATCH 41/53] [ticket/11548] Fix test errors in groups test on develop This will fix the errors that appeared in the functional groups test due to the changes in the new avatar system. The patch will make them work again. PHPBB3-11548 --- tests/functional/common_groups_test.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tests/functional/common_groups_test.php b/tests/functional/common_groups_test.php index f6b447dc90..6c6572af62 100644 --- a/tests/functional/common_groups_test.php +++ b/tests/functional/common_groups_test.php @@ -84,19 +84,19 @@ abstract class phpbb_functional_common_groups_test extends phpbb_functional_test public function group_avatar_min_max_data() { return array( - array('uploadurl', 'foo', 'TOO_SHORT'), - array('uploadurl', 'foobar', 'AVATAR_URL_INVALID'), - array('uploadurl', str_repeat('f', 256), 'TOO_LONG'), - array('remotelink', 'foo', 'TOO_SHORT'), - array('remotelink', 'foobar', 'AVATAR_URL_INVALID'), - array('remotelink', str_repeat('f', 256), 'TOO_LONG'), + array('avatar_driver_upload', 'avatar_upload_url', 'foo', 'AVATAR_URL_INVALID'), + array('avatar_driver_upload', 'avatar_upload_url', 'foobar', 'AVATAR_URL_INVALID'), + array('avatar_driver_upload', 'avatar_upload_url', 'http://www.phpbb.com/' . str_repeat('f', 240) . '.png', 'TOO_LONG'), + array('avatar_driver_remote', 'avatar_remote_url', 'foo', 'AVATAR_URL_INVALID'), + array('avatar_driver_remote', 'avatar_remote_url', 'foobar', 'AVATAR_URL_INVALID'), + array('avatar_driver_remote', 'avatar_remote_url', 'http://www.phpbb.com/' . str_repeat('f', 240) . '.png', 'TOO_LONG'), ); } /** * @dataProvider group_avatar_min_max_data */ - public function test_group_avatar_min_max($form_name, $input, $expected) + public function test_group_avatar_min_max($avatar_type, $form_name, $input, $expected) { $this->login(); $this->admin_login(); @@ -105,6 +105,7 @@ abstract class phpbb_functional_common_groups_test extends phpbb_functional_test $crawler = self::request('GET', $this->get_url() . '&g=5&sid=' . $this->sid); $form = $crawler->selectButton($this->lang('SUBMIT'))->form(); + $form['avatar_driver']->setValue($avatar_type); $form[$form_name]->setValue($input); $crawler = self::submit($form); $this->assertContains($this->lang($expected), $crawler->text()); From a1a5a636b17f14fb3c09febe0607782f99cc7db1 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Fri, 12 Jul 2013 14:42:26 -0400 Subject: [PATCH 42/53] [ticket/11668] Run lint test at the end of the test suite The lint test is very slow. Running it at the end should speed up the development cycle. PHPBB3-11668 --- phpunit.xml.all | 4 ++++ phpunit.xml.dist | 4 ++++ phpunit.xml.functional | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/phpunit.xml.all b/phpunit.xml.all index 9e220ff559..d91a614c97 100644 --- a/phpunit.xml.all +++ b/phpunit.xml.all @@ -15,6 +15,10 @@ ./tests/ ./tests/functional + tests/lint_test.php + + + tests/lint_test.php ./tests/functional diff --git a/phpunit.xml.dist b/phpunit.xml.dist index f8bf063d9a..4c91f8e373 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -15,6 +15,10 @@ ./tests/ ./tests/functional + tests/lint_test.php + + + tests/lint_test.php ./tests/functional diff --git a/phpunit.xml.functional b/phpunit.xml.functional index 376d52e6d8..919de74dec 100644 --- a/phpunit.xml.functional +++ b/phpunit.xml.functional @@ -15,6 +15,10 @@ ./tests/ ./tests/functional + tests/lint_test.php + + + tests/lint_test.php ./tests/functional From 224aec0f2dc3c14cddabc972f7893395a6fe5cb9 Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Fri, 12 Jul 2013 13:57:24 -0500 Subject: [PATCH 43/53] [ticket/11669] Fix PHP bug #55124 (recursive mkdir on /./) PHPBB3-11669 --- tests/test_framework/phpbb_test_case_helpers.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_framework/phpbb_test_case_helpers.php b/tests/test_framework/phpbb_test_case_helpers.php index 50b2bf03ec..3d9cd10f32 100644 --- a/tests/test_framework/phpbb_test_case_helpers.php +++ b/tests/test_framework/phpbb_test_case_helpers.php @@ -94,6 +94,9 @@ class phpbb_test_case_helpers public function makedirs($path) { + // PHP bug #55124 (fixed in 5.4.0) + $path = str_replace('/./', '/', $path); + mkdir($path, 0777, true); } From 6f14c8375eac4f574182980c45919de439a58df5 Mon Sep 17 00:00:00 2001 From: Andreas Fischer Date: Fri, 12 Jul 2013 00:39:35 +0200 Subject: [PATCH 44/53] [develop-olympus] Bumping version numbers to final for 3.0.12 releases. --- phpBB/docs/INSTALL.html | 6 +++--- phpBB/install/convertors/convert_phpbb20.php | 2 +- phpBB/styles/prosilver/imageset/imageset.cfg | 2 +- phpBB/styles/prosilver/style.cfg | 2 +- phpBB/styles/prosilver/template/template.cfg | 2 +- phpBB/styles/prosilver/theme/theme.cfg | 2 +- phpBB/styles/subsilver2/imageset/imageset.cfg | 2 +- phpBB/styles/subsilver2/style.cfg | 2 +- phpBB/styles/subsilver2/template/template.cfg | 2 +- phpBB/styles/subsilver2/theme/theme.cfg | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/phpBB/docs/INSTALL.html b/phpBB/docs/INSTALL.html index dcc21fac54..cd1185644b 100644 --- a/phpBB/docs/INSTALL.html +++ b/phpBB/docs/INSTALL.html @@ -275,7 +275,7 @@

This package is meant for those wanting to only replace the files that were changed between a previous version and the latest version.

-

This package contains a number of archives, each contains the files changed from a given release to the latest version. You should select the appropriate archive for your current version, e.g. if you currently have 3.0.10 you should select the appropriate phpBB-3.0.11-files.zip/tar.bz2 file.

+

This package contains a number of archives, each contains the files changed from a given release to the latest version. You should select the appropriate archive for your current version, e.g. if you currently have 3.0.11 you should select the appropriate phpBB-3.0.12-files.zip/tar.bz2 file.

The directory structure has been preserved, enabling you (if you wish) to simply upload the uncompressed contents of the archive to the appropriate location on your server, i.e. simply overwrite the existing files with the new versions. Do not forget that if you have installed any modifications (MODs) these files will overwrite the originals, possibly destroying them in the process. You will need to re-add MODs to any affected file before uploading.

@@ -287,7 +287,7 @@

The patch file is one solution for those with many Modifications (MODs) or other changes and do not want to re-add them back to all the changed files. To use this you will need command line access to a standard UNIX type patch application. If you do not have access to such an application, but still want to use this update approach, we strongly recommend the Automatic update package explained below. It is also the recommended update method.

-

A number of patch files are provided to allow you to update from previous stable releases. Select the correct patch, e.g. if your current version is 3.0.10, you need the phpBB-3.0.11-patch.zip/tar.bz2 file. Place the correct patch in the parent directory containing the phpBB core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: patch -cl -d [PHPBB DIRECTORY] -p1 < [PATCH NAME] (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.

+

A number of patch files are provided to allow you to update from previous stable releases. Select the correct patch, e.g. if your current version is 3.0.11, you need the phpBB-3.0.12-patch.zip/tar.bz2 file. Place the correct patch in the parent directory containing the phpBB core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: patch -cl -d [PHPBB DIRECTORY] -p1 < [PATCH NAME] (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.

If you do get failures, you should look at using the Changed Files package to replace the files which failed to patch. Please note that you will need to manually re-add any MODs to these particular files. Alternatively, if you know how, you can examine the .rej files to determine what failed where and make manual adjustments to the relevant source.

@@ -297,7 +297,7 @@

This update method is the recommended method for updating. This package detects changed files automatically and merges in changes if needed.

-

The automatic update package will update the board from a given version to the latest version. A number of automatic update files are available, and you should choose the one that corresponds to the version of the board that you are currently running. For example, if your current version is 3.0.10, you need the phpBB-3.0.10_to_3.0.11.zip/tar.bz2 file.

+

The automatic update package will update the board from a given version to the latest version. A number of automatic update files are available, and you should choose the one that corresponds to the version of the board that you are currently running. For example, if your current version is 3.0.11, you need the phpBB-3.0.11_to_3.0.12.zip/tar.bz2 file.

To perform the update, either follow the instructions from the Administration Control Panel->System Tab - this should point out that you are running an outdated version and will guide you through the update - or follow the instructions listed below.

diff --git a/phpBB/install/convertors/convert_phpbb20.php b/phpBB/install/convertors/convert_phpbb20.php index 960cc5b335..f1127da8aa 100644 --- a/phpBB/install/convertors/convert_phpbb20.php +++ b/phpBB/install/convertors/convert_phpbb20.php @@ -32,7 +32,7 @@ unset($dbpasswd); $convertor_data = array( 'forum_name' => 'phpBB 2.0.x', 'version' => '1.0.3', - 'phpbb_version' => '3.0.11', + 'phpbb_version' => '3.0.12', 'author' => 'phpBB Group', 'dbms' => $dbms, 'dbhost' => $dbhost, diff --git a/phpBB/styles/prosilver/imageset/imageset.cfg b/phpBB/styles/prosilver/imageset/imageset.cfg index d7ba7690f6..22178d8a9d 100644 --- a/phpBB/styles/prosilver/imageset/imageset.cfg +++ b/phpBB/styles/prosilver/imageset/imageset.cfg @@ -19,7 +19,7 @@ # General Information about this style name = prosilver copyright = © phpBB Group, 2007 -version = 3.0.11 +version = 3.0.12 # Images img_site_logo = site_logo.gif*52*139 diff --git a/phpBB/styles/prosilver/style.cfg b/phpBB/styles/prosilver/style.cfg index 97e8aced01..811e5f4376 100644 --- a/phpBB/styles/prosilver/style.cfg +++ b/phpBB/styles/prosilver/style.cfg @@ -19,4 +19,4 @@ # General Information about this style name = prosilver copyright = © phpBB Group, 2007 -version = 3.0.11 \ No newline at end of file +version = 3.0.12 \ No newline at end of file diff --git a/phpBB/styles/prosilver/template/template.cfg b/phpBB/styles/prosilver/template/template.cfg index eb3df8bfd3..af84a0a66c 100644 --- a/phpBB/styles/prosilver/template/template.cfg +++ b/phpBB/styles/prosilver/template/template.cfg @@ -19,7 +19,7 @@ # General Information about this template name = prosilver copyright = © phpBB Group, 2007 -version = 3.0.11 +version = 3.0.12 # Defining a different template bitfield template_bitfield = lNg= diff --git a/phpBB/styles/prosilver/theme/theme.cfg b/phpBB/styles/prosilver/theme/theme.cfg index ec489d0b3d..03d82ed5f6 100644 --- a/phpBB/styles/prosilver/theme/theme.cfg +++ b/phpBB/styles/prosilver/theme/theme.cfg @@ -21,7 +21,7 @@ # General Information about this theme name = prosilver copyright = © phpBB Group, 2007 -version = 3.0.11 +version = 3.0.12 # Some configuration options diff --git a/phpBB/styles/subsilver2/imageset/imageset.cfg b/phpBB/styles/subsilver2/imageset/imageset.cfg index c943db6735..cb48b0fd9f 100644 --- a/phpBB/styles/subsilver2/imageset/imageset.cfg +++ b/phpBB/styles/subsilver2/imageset/imageset.cfg @@ -19,7 +19,7 @@ # General Information about this style name = subsilver2 copyright = © phpBB Group, 2003 -version = 3.0.11 +version = 3.0.12 # Images img_site_logo = site_logo.gif*94*170 diff --git a/phpBB/styles/subsilver2/style.cfg b/phpBB/styles/subsilver2/style.cfg index 4c40ee4438..b99c433ff1 100644 --- a/phpBB/styles/subsilver2/style.cfg +++ b/phpBB/styles/subsilver2/style.cfg @@ -19,4 +19,4 @@ # General Information about this style name = subsilver2 copyright = © 2005 phpBB Group -version = 3.0.11 +version = 3.0.12 diff --git a/phpBB/styles/subsilver2/template/template.cfg b/phpBB/styles/subsilver2/template/template.cfg index 6568aeca08..0c50275208 100644 --- a/phpBB/styles/subsilver2/template/template.cfg +++ b/phpBB/styles/subsilver2/template/template.cfg @@ -19,7 +19,7 @@ # General Information about this template name = subsilver2 copyright = © phpBB Group, 2003 -version = 3.0.11 +version = 3.0.12 # Template inheritance # See http://blog.phpbb.com/2008/07/31/templating-just-got-easier/ diff --git a/phpBB/styles/subsilver2/theme/theme.cfg b/phpBB/styles/subsilver2/theme/theme.cfg index 5bd4480eef..5c58dc65d9 100644 --- a/phpBB/styles/subsilver2/theme/theme.cfg +++ b/phpBB/styles/subsilver2/theme/theme.cfg @@ -21,7 +21,7 @@ # General Information about this theme name = subsilver2 copyright = © phpBB Group, 2003 -version = 3.0.11 +version = 3.0.12 # Some configuration options From f1dd35387c3e98cd4b623de5d0c9ffde470dd4c3 Mon Sep 17 00:00:00 2001 From: Andreas Fischer Date: Fri, 12 Jul 2013 00:43:52 +0200 Subject: [PATCH 45/53] [develop-olympus] Bump version numbers for 3.0.12-RC1 release. --- build/build.xml | 2 +- phpBB/includes/constants.php | 2 +- phpBB/install/database_update.php | 6 +++--- phpBB/install/schemas/schema_data.sql | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build/build.xml b/build/build.xml index 75affb0f2d..e4fe24005f 100644 --- a/build/build.xml +++ b/build/build.xml @@ -2,7 +2,7 @@ - + diff --git a/phpBB/includes/constants.php b/phpBB/includes/constants.php index ad5b43bc9a..0a853adb9b 100644 --- a/phpBB/includes/constants.php +++ b/phpBB/includes/constants.php @@ -25,7 +25,7 @@ if (!defined('IN_PHPBB')) */ // phpBB Version -define('PHPBB_VERSION', '3.0.12-dev'); +define('PHPBB_VERSION', '3.0.12-RC1'); // QA-related // define('PHPBB_QA', 1); diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php index a0ca05a129..5cb410bf29 100644 --- a/phpBB/install/database_update.php +++ b/phpBB/install/database_update.php @@ -8,7 +8,7 @@ * */ -define('UPDATES_TO_VERSION', '3.0.12-dev'); +define('UPDATES_TO_VERSION', '3.0.12-RC1'); // Enter any version to update from to test updates. The version within the db will not be updated. define('DEBUG_FROM_VERSION', false); @@ -949,7 +949,7 @@ function database_update_info() // this column was removed from the database updater // after 3.0.9-RC3 was released. It might still exist // in 3.0.9-RCX installations and has to be dropped in - // 3.0.12 after the db_tools class is capable of properly + // 3.0.13 after the db_tools class is capable of properly // removing a primary key. // 'attempt_id' => array('UINT', NULL, 'auto_increment'), 'attempt_ip' => array('VCHAR:40', ''), @@ -1006,7 +1006,7 @@ function database_update_info() // No changes from 3.0.11 to 3.0.12-RC1 '3.0.11' => array(), - /** @todo DROP LOGIN_ATTEMPT_TABLE.attempt_id in 3.0.12-RC1 */ + /** @todo DROP LOGIN_ATTEMPT_TABLE.attempt_id in 3.0.13-RC1 */ ); } diff --git a/phpBB/install/schemas/schema_data.sql b/phpBB/install/schemas/schema_data.sql index b139857d28..04b92b19c6 100644 --- a/phpBB/install/schemas/schema_data.sql +++ b/phpBB/install/schemas/schema_data.sql @@ -246,7 +246,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('topics_per_page', INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_path', 'files'); -INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.0.12-dev'); +INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.0.12-RC1'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400'); From 036a4188f3409387046aacaf22854edae4ace999 Mon Sep 17 00:00:00 2001 From: Andreas Fischer Date: Fri, 12 Jul 2013 00:54:35 +0200 Subject: [PATCH 46/53] [develop-olympus] Add changelog for 3.0.12 release. --- phpBB/docs/CHANGELOG.html | 185 +++++++++++++++++++++++++++++++++----- 1 file changed, 165 insertions(+), 20 deletions(-) diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html index 4d44a88634..083566fe86 100644 --- a/phpBB/docs/CHANGELOG.html +++ b/phpBB/docs/CHANGELOG.html @@ -53,6 +53,7 @@
  1. Changelog
      +
    1. Changes since 3.0.11
    2. Changes since 3.0.10
    3. Changes since 3.0.9
    4. Changes since 3.0.8
    5. @@ -92,7 +93,151 @@
      -

      1.i. Changes since 3.0.10

      +

      1.i. Changes since 3.0.11

      + +

      Bug

      +
        +
      • [PHPBB3-6723] - Empty message in deleted messages in PM history
      • +
      • [PHPBB3-7262] - Clarify docs about is_dynamic not being updated by set_config()
      • +
      • [PHPBB3-8319] - LOCAL_URL not enforced in bbcodes
      • +
      • [PHPBB3-9551] - Mysql fulltext index creation fails due to partial collation change
      • +
      • [PHPBB3-9975] - Hard coded language in sessions.php
      • +
      • [PHPBB3-10184] - Bots can be sent private messages
      • +
      • [PHPBB3-10491] - Fatal error in functional tests when server returns 404
      • +
      • [PHPBB3-10568] - Modify the trigger language when you edit a PM
      • +
      • [PHPBB3-10602] - A bug in mail queue processing
      • +
      • [PHPBB3-10661] - UCP > PM > Compose > enumerated recipients > BCC group misses a &nbsp; (prosilver)
      • +
      • [PHPBB3-10678] - Provide Firebird, Oracle, and increased MSSQL support in unit tests
      • +
      • [PHPBB3-10772] - trigger_error is using the default style
      • +
      • [PHPBB3-10789] - PM print template (prosilver) with unnecessary variables
      • +
      • [PHPBB3-10820] - Display images directly in IE9 and 10 instead of download
      • +
      • [PHPBB3-10828] - PostgreSQL dbal tests try to connect to the database named as user specified in configuration
      • +
      • [PHPBB3-10838] - Functional tests are not mentioned in RUNNING_TESTS.txt
      • +
      • [PHPBB3-10840] - If you add a member to a group, the form_token can be set to 0 if the creation_time is 0 too. Maybe even if creation_time is unchanged.
      • +
      • [PHPBB3-10848] - Wrong redirect to installer from acp
      • +
      • [PHPBB3-10850] - create_schema_files.php is not creating the oracle or postgres' schema file properly
      • +
      • [PHPBB3-10879] - prosilver: attachment-link will be displayed wrong, when filename is too long
      • +
      • [PHPBB3-10880] - m_approve should not imply f_noapprove
      • +
      • [PHPBB3-10896] - board_email & board_contact are not validated as email addresses in ACP
      • +
      • [PHPBB3-10897] - Bot Definitions are outdated
      • +
      • [PHPBB3-10918] - docs/INSTALL.html claims there are tar.gz packages
      • +
      • [PHPBB3-10943] - Search Box should display keywords entered by the user
      • +
      • [PHPBB3-10967] - PHPBB_USE_BOARD_URL_PATH not implemented in posting_gen_topic_icons
      • +
      • [PHPBB3-10986] - Invalid email message ids because config variable server_name is used even when force server URL settings is disabled
      • +
      • [PHPBB3-10995] - Return value of $db->sql_fetchrow() on empty tables is not consistent on mssqlnative
      • +
      • [PHPBB3-10996] - Travis tests fail on Postgres because database does not exist
      • +
      • [PHPBB3-11034] - The functional test case framework does not install a full board each time
      • +
      • [PHPBB3-11066] - MSSQLnative driver contains debug code error_reporting(E_ALL)
      • +
      • [PHPBB3-11069] - missing closing span in subsilver2 simple_footer.html
      • +
      • [PHPBB3-11081] - Duplicated /TD in styles/subsilver2/template/catpcha_qa.html
      • +
      • [PHPBB3-11093] - acp_users_overview.html has a wrongly placed </dd>
      • +
      • [PHPBB3-11094] - prosilver: searching for users: no textbox for Jabber
      • +
      • [PHPBB3-11105] - Missing mandatory space in meta http-equiv=refresh
      • +
      • [PHPBB3-11112] - phpBB Footer Link should be SSL
      • +
      • [PHPBB3-11122] - Update docs/AUTHORS for 3.0.12-RC1
      • +
      • [PHPBB3-11144] - {FORUM_NAME} is not filled in login mask when logging into a password protected forum
      • +
      • [PHPBB3-11145] - ATTACHED_IMAGE_NOT_IMAGE thrown because of file limit in php.ini
      • +
      • [PHPBB3-11158] - modules table lacks acl_u_sig for signature module
      • +
      • [PHPBB3-11159] - Coding guidelines: static public
      • +
      • [PHPBB3-11164] - Composer not finding symfony/config in PHP 5.3.3
      • +
      • [PHPBB3-11178] - database_update.php should not set error_reporting to E_ALL
      • +
      • [PHPBB3-11186] - Database unit tests fail on windows using sqlite2
      • +
      • [PHPBB3-11190] - Functional tests do not clear the cache between each test
      • +
      • [PHPBB3-11196] - /includes/session.php sends 401 HTTP status with "Not authorized" instead of "Unauthorized"
      • +
      • [PHPBB3-11219] - Database sequences are not updated for tests using fixtures with auto_incremented columns
      • +
      • [PHPBB3-11227] - @return void -> @return null
      • +
      • [PHPBB3-11233] - Anonymous can be selected as a PM recipient
      • +
      • [PHPBB3-11248] - CRLF line endings
      • +
      • [PHPBB3-11262] - .lock files are not in .gitignore
      • +
      • [PHPBB3-11265] - Functional tests do not assert that board installation succeeded
      • +
      • [PHPBB3-11269] - Travis functional test case errors
      • +
      • [PHPBB3-11278] - Firebird tables are not removed correctly on 3.0.9-rc1 update
      • +
      • [PHPBB3-11288] - Search fooled by hyphens
      • +
      • [PHPBB3-11291] - "Could not open input file: ../composer.phar" error during phing's create-package
      • +
      • [PHPBB3-11292] - Newlines removed in display of PM reports, no clickable links in PM reports
      • +
      • [PHPBB3-11301] - "String offset cast occured" error on PHP 5.4
      • +
      • [PHPBB3-11304] - check_form_key breaks in tests when form is submitted in the same second it is retrieved
      • +
      • [PHPBB3-11343] - Loose string comparison during new password activation
      • +
      • [PHPBB3-11355] - Incorrect error message when no user selected for action on group membership management page
      • +
      • [PHPBB3-11358] - Success message even withot selecting a user and performing a group operation
      • +
      • [PHPBB3-11361] - "Array to string conversion" error in $user->format_date()
      • +
      • [PHPBB3-11493] - Functional tests should fail if any debug output is made
      • +
      • [PHPBB3-11517] - Numbering is wrong in coding guidelines
      • +
      • [PHPBB3-11536] - Installer incorrectly removes /install from script_path
      • +
      • [PHPBB3-11537] - UCP group manage page's error box differs heavily from the rest of the UCP
      • +
      • [PHPBB3-11538] - SQL error on UCP groups manage page caused by setting color to 7 characters long string
      • +
      • [PHPBB3-11544] - Add admin_login() to 3.0 functional test case
      • +
      • [PHPBB3-11545] - is_absolute() should not depend on DIRECTORY_SEPARATOR
      • +
      • [PHPBB3-11546] - is_absolute() throws E_NOTICE for empty string
      • +
      • [PHPBB3-11547] - Test fixtures do not support utf8 characters
      • +
      • [PHPBB3-11548] - Untranslated TOO_SHORT in UCP "Manage Groups"
      • +
      • [PHPBB3-11566] - Reporting a post should require a captcha to be solved by guests
      • +
      • [PHPBB3-11568] - Functional tests fail with retrieving install pages using file_get_contents
      • +
      • [PHPBB3-11575] - phpbb_dbal_order_lower_test::test_cross_join should be called test_order_lower
      • +
      • [PHPBB3-11578] - Missing underscore after function prefix in validate_data()
      • +
      • [PHPBB3-11579] - Add unit tests for validate_data()
      • +
      • [PHPBB3-11580] - Avoid API Limit from composer downloads on github
      • +
      • [PHPBB3-11588] - install/install_update.php should use version.phpbb.com instead of www
      • +
      • [PHPBB3-11590] - Close database connections from tests whenever possible
      • +
      • [PHPBB3-11601] - Allow manual resync of database columns in unit tests not only on fixture load
      • +
      • [PHPBB3-11603] - git-tools use invalid api urls
      • +
      • [PHPBB3-11604] - Functional tests fail when phpBB can not create the config file
      • +
      • [PHPBB3-11617] - Missing U_ACTION in acp_captcha.php
      • +
      • [PHPBB3-11618] - Template tests fail on some systems due to a PHP error in glob()
      • +
      • [PHPBB3-11619] - get_remote_file() should use HTTP 1.0
      • +
      • [PHPBB3-11630] - Improvements to the PHP lint pre-commit hook
      • +
      • [PHPBB3-11644] - Skip phpbb_dbal_order_lower_test on MySQL 5.6
      • +
      • [PHPBB3-11662] - "occured" should be "occurred"
      • +
      +

      Improvement

      +
        +
      • [PHPBB3-8743] - New topic / reply notifications do not contain author's name.
      • +
      • [PHPBB3-10050] - subsilver2: Do not show "Mark topics as read" when there are no topics
      • +
      • [PHPBB3-10205] - More informative reporting of errors when database connection fails (MySQL and others)
      • +
      • [PHPBB3-10716] - PHP-parse all php files as part of the test suite
      • +
      • [PHPBB3-10841] - Disable style and language selectors if there's only one installed.
      • +
      • [PHPBB3-10854] - sql server drop default constraint when dropping column
      • +
      • [PHPBB3-10865] - Updated and Added to docs/INSTALL.html
      • +
      • [PHPBB3-10873] - Change language entry for deleted PMs
      • +
      • [PHPBB3-10981] - Upgrade Goutte and use Composer for Installation
      • +
      • [PHPBB3-11131] - Phrasing & semantics of Board settings
      • +
      • [PHPBB3-11162] - Get rid of $db->sql_return_on_error(true) trickery when splitting/merging topics
      • +
      • [PHPBB3-11192] - Add Tebibyte to get_formatted_filesize()
      • +
      • [PHPBB3-11202] - Add response status checks to functional tests
      • +
      • [PHPBB3-11220] - Improve tooltip explaining the [list=] - BBcode
      • +
      • [PHPBB3-11238] - Specify goutte version
      • +
      • [PHPBB3-11285] - Use more granularity in dependency checks in compress test
      • +
      • [PHPBB3-11293] - Prefer mysqli over mysql due to php 5.5 alpha 2 deprecating mysql
      • +
      • [PHPBB3-11294] - Update extension list in running tests doc
      • +
      • [PHPBB3-11368] - Latest pm reports row count
      • +
      • [PHPBB3-11583] - InnoDB supports FULLTEXT index since MySQL 5.6.4.
      • +
      +

      Sub-task

      +
        +
      • [PHPBB3-10974] - Move tests/mock_user.php to tests/mock/user.php
      • +
      • [PHPBB3-11009] - Backport phing build.xml from develop to develop-olympus so it uses composer.
      • +
      • [PHPBB3-11540] - Add unit tests for (phpbb_)is_absolute()
      • +
      • [PHPBB3-11541] - Add unit tests for style_select() in functions.php
      • +
      • [PHPBB3-11542] - Add unit tests for language_select() in functions.php
      • +
      • [PHPBB3-11543] - Add unit tests for obtain online functions in functions.php
      • +
      +

      Task

      +
        +
      • [PHPBB3-10877] - Have bamboo generate and publish a phpBB package for every build.
      • +
      • [PHPBB3-11045] - Add unit tests for the compress class
      • +
      • [PHPBB3-11059] - Fix README logo
      • +
      • [PHPBB3-11060] - Fix travis.yml pyrus config
      • +
      • [PHPBB3-11240] - Turn on PHPUnit's verbose mode on Travis
      • +
      • [PHPBB3-11324] - Add PHP 5.5 environment on Travis-CI
      • +
      • [PHPBB3-11337] - Run functional tests on Travis CI
      • +
      • [PHPBB3-11513] - Install PHPUnit via Composer's require-dev to simplify test running (no need for pear)
      • +
      • [PHPBB3-11526] - Increase composer minimum-stability from beta to stable
      • +
      • [PHPBB3-11527] - Upgrade composer.phar to 1.0.0-alpha7
      • +
      • [PHPBB3-11529] - Rename RUNNING_TESTS file to .md file to render it on GitHub
      • +
      • [PHPBB3-11576] - Make phpBB Test Suite MySQL behave at least as strict as phpBB MySQL driver
      • +
      + +

      1.ii. Changes since 3.0.10

      Bug

        @@ -217,7 +362,7 @@
      • [PHPBB3-10909] - Update Travis Test Configuration: Travis no longer supports PHP 5.3.2
      -

      1.ii. Changes since 3.0.9

      +

      1.iii. Changes since 3.0.9

      Bug

        @@ -353,7 +498,7 @@
      • [PHPBB3-10480] - Automate changelog building
      -

      1.iii. Changes since 3.0.8

      +

      1.iv. Changes since 3.0.8

      Bug

      @@ -721,7 +866,7 @@ -

      1.iv. Changes since 3.0.7-PL1

      +

      1.v. Changes since 3.0.7-PL1

      Security

        @@ -1179,13 +1324,13 @@
      -

      1.iv. Changes since 3.0.7

      +

      1.vi. Changes since 3.0.7

      • [Sec] Do not expose forum content of forums with ACL entries but no actual permission in ATOM Feeds. (Bug #58595)
      -

      1.vi. Changes since 3.0.6

      +

      1.vii. Changes since 3.0.6

      • [Fix] Allow ban reason and length to be selected and copied in ACP and subsilver2 MCP. (Bug #51095)
      • @@ -1289,7 +1434,7 @@
      -

      1.vii. Changes since 3.0.5

      +

      1.viii. Changes since 3.0.5

      • [Fix] Allow whitespaces in avatar gallery names. (Bug #44955)
      • @@ -1511,7 +1656,7 @@
      • [Feature] Send anonymous statistical information to phpBB on installation and update (optional).
      -

      1.viii. Changes since 3.0.4

      +

      1.ix. Changes since 3.0.4

      • [Fix] Delete user entry from ban list table upon user deletion (Bug #40015 - Patch by TerraFrost)
      • @@ -1600,7 +1745,7 @@
      • [Sec] Only use forum id supplied for posting if global announcement detected. (Reported by nickvergessen)
      -

      1.ix. Changes since 3.0.3

      +

      1.x. Changes since 3.0.3

      • [Fix] Allow mixed-case template directories to be inherited (Bug #36725)
      • @@ -1632,7 +1777,7 @@
      • [Sec] Ask for forum password if post within passworded forum quoted in private message. (Reported by nickvergessen)
      -

      1.x. Changes since 3.0.2

      +

      1.xi. Changes since 3.0.2

      • [Fix] Correctly set topic starter if first post in topic removed (Bug #30575 - Patch by blueray2048)
      • @@ -1731,7 +1876,7 @@
      • [Sec Precaution] Stricter validation of the HTTP_HOST header (Thanks to Techie-Micheal et al for pointing out possible issues in derived code)
      -

      1.xi. Changes since 3.0.1

      +

      1.xii. Changes since 3.0.1

      • [Fix] Ability to set permissions on non-mysql dbms (Bug #24955)
      • @@ -1779,7 +1924,7 @@
      • [Sec] Only allow urls gone through redirect() being used within login_box(). (thanks nookieman)
      -

      1.xii Changes since 3.0.0

      +

      1.xiii Changes since 3.0.0

      • [Change] Validate birthdays (Bug #15004)
      • @@ -1850,7 +1995,7 @@
      • [Fix] Find and display colliding usernames correctly when converting from one database to another (Bug #23925)
      -

      1.xiii. Changes since 3.0.RC8

      +

      1.xiv. Changes since 3.0.RC8

      • [Fix] Cleaned usernames contain only single spaces, so "a_name" and "a__name" are treated as the same name (Bug #15634)
      • @@ -1859,7 +2004,7 @@
      • [Fix] Call garbage_collection() within database updater to correctly close connections (affects Oracle for example)
      -

      1.xiv. Changes since 3.0.RC7

      +

      1.xv. Changes since 3.0.RC7

      • [Fix] Fixed MSSQL related bug in the update system
      • @@ -1894,7 +2039,7 @@
      • [Fix] No duplication of active topics (Bug #15474)
      -

      1.xv. Changes since 3.0.RC6

      +

      1.xvi. Changes since 3.0.RC6

      • [Fix] Submitting language changes using acp_language (Bug #14736)
      • @@ -1904,7 +2049,7 @@
      • [Fix] Able to request new password (Bug #14743)
      -

      1.xvi. Changes since 3.0.RC5

      +

      1.xvii. Changes since 3.0.RC5

      • [Feature] Removing constant PHPBB_EMBEDDED in favor of using an exit_handler(); the constant was meant to achive this more or less.
      • @@ -1967,7 +2112,7 @@
      • [Sec] New password hashing mechanism for storing passwords (#i42)
      -

      1.xvii. Changes since 3.0.RC4

      +

      1.xviii. Changes since 3.0.RC4

      • [Fix] MySQL, PostgreSQL and SQLite related database fixes (Bug #13862)
      • @@ -2018,7 +2163,7 @@
      • [Fix] odbc_autocommit causing existing result sets to be dropped (Bug #14182)
      -

      1.xviii. Changes since 3.0.RC3

      +

      1.xix. Changes since 3.0.RC3

      • [Fix] Fixing some subsilver2 and prosilver style issues
      • @@ -2127,7 +2272,7 @@
      -

      1.xviv. Changes since 3.0.RC2

      +

      1.xx. Changes since 3.0.RC2

      • [Fix] Re-allow searching within the memberlist
      • @@ -2173,7 +2318,7 @@
      -

      1.xx. Changes since 3.0.RC1

      +

      1.xxi. Changes since 3.0.RC1

      • [Fix] (X)HTML issues within the templates (Bug #11255, #11255)
      • From b93636d42d63bd396a31ff7cf699f8add006d765 Mon Sep 17 00:00:00 2001 From: Andreas Fischer Date: Fri, 12 Jul 2013 20:56:55 +0200 Subject: [PATCH 47/53] [develop-olympus] Increment version number to 3.0.13-dev. --- phpBB/includes/constants.php | 2 +- phpBB/install/database_update.php | 2 +- phpBB/install/schemas/schema_data.sql | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/phpBB/includes/constants.php b/phpBB/includes/constants.php index 0a853adb9b..8d09fe4d9b 100644 --- a/phpBB/includes/constants.php +++ b/phpBB/includes/constants.php @@ -25,7 +25,7 @@ if (!defined('IN_PHPBB')) */ // phpBB Version -define('PHPBB_VERSION', '3.0.12-RC1'); +define('PHPBB_VERSION', '3.0.13-dev'); // QA-related // define('PHPBB_QA', 1); diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php index 5cb410bf29..757fc6499f 100644 --- a/phpBB/install/database_update.php +++ b/phpBB/install/database_update.php @@ -8,7 +8,7 @@ * */ -define('UPDATES_TO_VERSION', '3.0.12-RC1'); +define('UPDATES_TO_VERSION', '3.0.13-dev'); // Enter any version to update from to test updates. The version within the db will not be updated. define('DEBUG_FROM_VERSION', false); diff --git a/phpBB/install/schemas/schema_data.sql b/phpBB/install/schemas/schema_data.sql index 04b92b19c6..e1b36e64a2 100644 --- a/phpBB/install/schemas/schema_data.sql +++ b/phpBB/install/schemas/schema_data.sql @@ -246,7 +246,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('topics_per_page', INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_path', 'files'); -INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.0.12-RC1'); +INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.0.13-dev'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400'); From 631ce22f2c33999229bf05af35e025fb8d399417 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Fri, 12 Jul 2013 15:53:36 -0400 Subject: [PATCH 48/53] [ticket/11626] Remove LDAP dependency on template Returns template vars rather than requiring the template. PHPBB3-11626 --- phpBB/config/auth_providers.yml | 1 - phpBB/includes/acp/acp_board.php | 3 ++- phpBB/includes/auth/provider/interface.php | 11 +++++--- phpBB/includes/auth/provider/ldap.php | 29 +++++++++++----------- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/phpBB/config/auth_providers.yml b/phpBB/config/auth_providers.yml index 3136e60584..bcc448e4d7 100644 --- a/phpBB/config/auth_providers.yml +++ b/phpBB/config/auth_providers.yml @@ -33,6 +33,5 @@ services: - @dbal.conn - @config - @user - - @template tags: - { name: auth.provider } diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index 9285608ae2..ad95ad3da3 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -658,8 +658,9 @@ class acp_board $auth_tpl = $provider->get_acp_template($this->new_config); if ($auth_tpl) { + $template->assign_vars($auth_tpl['TEMPLATE_VARS']); $template->assign_block_vars('auth_tpl', array( - 'TEMPLATE_FILE' => $auth_tpl, + 'TEMPLATE_FILE' => $auth_tpl['TEMPLATE_FILE'], )); } } diff --git a/phpBB/includes/auth/provider/interface.php b/phpBB/includes/auth/provider/interface.php index 40c48026cf..47043bc107 100644 --- a/phpBB/includes/auth/provider/interface.php +++ b/phpBB/includes/auth/provider/interface.php @@ -72,9 +72,14 @@ interface phpbb_auth_provider_interface * provider. * @param array $new_config Contains the new configuration values that * have been set in acp_board. - * @return string|null Returns null if not implemented or a string - * containing the name of the acp tempalte file for - * the authentication provider. + * @return array|null Returns null if not implemented or an array with + * the template file name and an array of the vars + * that the template needs that must conform to the + * following example: + * array( + * 'TEMPLATE_FILE' => string, + * 'TEMPLATE_VARS' => array(...), + * ) */ public function get_acp_template($new_config); diff --git a/phpBB/includes/auth/provider/ldap.php b/phpBB/includes/auth/provider/ldap.php index 288fb617f5..56f9c23d55 100644 --- a/phpBB/includes/auth/provider/ldap.php +++ b/phpBB/includes/auth/provider/ldap.php @@ -30,14 +30,12 @@ class phpbb_auth_provider_ldap extends phpbb_auth_provider_base * @param phpbb_db_driver $db * @param phpbb_config $config * @param phpbb_user $user - * @param phpbb_template $template */ - public function __construct(phpbb_db_driver $db, phpbb_config $config, phpbb_user $user, phpbb_template $template) + public function __construct(phpbb_db_driver $db, phpbb_config $config, phpbb_user $user) { $this->db = $db; $this->config = $config; $this->user = $user; - $this->template = $template; } /** @@ -302,18 +300,21 @@ class phpbb_auth_provider_ldap extends phpbb_auth_provider_base */ public function get_acp_template($new_config) { - $this->template->assign_vars(array( - 'AUTH_LDAP_DN' => $new_config['ldap_base_dn'], - 'AUTH_LDAP_EMAIL' => $new_config['ldap_email'], - 'AUTH_LDAP_PASSORD' => $new_config['ldap_password'], - 'AUTH_LDAP_PORT' => $new_config['ldap_port'], - 'AUTH_LDAP_SERVER' => $new_config['ldap_server'], - 'AUTH_LDAP_UID' => $new_config['ldap_uid'], - 'AUTH_LDAP_USER' => $new_config['ldap_user'], - 'AUTH_LDAP_USER_FILTER' => $new_config['ldap_user_filter'], - )); + $this->template->assign_vars(); - return 'auth_provider_ldap.html'; + return array( + 'TEMPLATE_FILE' => 'auth_provider_ldap.html', + 'TEMPLATE_VARS' => array( + 'AUTH_LDAP_DN' => $new_config['ldap_base_dn'], + 'AUTH_LDAP_EMAIL' => $new_config['ldap_email'], + 'AUTH_LDAP_PASSORD' => $new_config['ldap_password'], + 'AUTH_LDAP_PORT' => $new_config['ldap_port'], + 'AUTH_LDAP_SERVER' => $new_config['ldap_server'], + 'AUTH_LDAP_UID' => $new_config['ldap_uid'], + 'AUTH_LDAP_USER' => $new_config['ldap_user'], + 'AUTH_LDAP_USER_FILTER' => $new_config['ldap_user_filter'], + ), + ); } /** From 64308f41b054d11ae267a58e04821b7b1e31af91 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Fri, 12 Jul 2013 15:57:35 -0400 Subject: [PATCH 49/53] [ticket/11626] Remove last reference to template in ldap PHPBB3-11626 --- phpBB/includes/auth/provider/ldap.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/phpBB/includes/auth/provider/ldap.php b/phpBB/includes/auth/provider/ldap.php index 56f9c23d55..0196529408 100644 --- a/phpBB/includes/auth/provider/ldap.php +++ b/phpBB/includes/auth/provider/ldap.php @@ -300,8 +300,6 @@ class phpbb_auth_provider_ldap extends phpbb_auth_provider_base */ public function get_acp_template($new_config) { - $this->template->assign_vars(); - return array( 'TEMPLATE_FILE' => 'auth_provider_ldap.html', 'TEMPLATE_VARS' => array( From 3375f41ef1eaca8edca344372a31d4aafb739c87 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Fri, 12 Jul 2013 16:14:16 -0400 Subject: [PATCH 50/53] [ticket/11668] Move lint test to the end for travis PHPBB3-11668 --- travis/phpunit-mysql-travis.xml | 4 ++++ travis/phpunit-postgres-travis.xml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/travis/phpunit-mysql-travis.xml b/travis/phpunit-mysql-travis.xml index 179a2a358e..e99f8d6cee 100644 --- a/travis/phpunit-mysql-travis.xml +++ b/travis/phpunit-mysql-travis.xml @@ -15,6 +15,10 @@ ../tests/ tests/functional + tests/lint_test.php + + + tests/lint_test.php ../tests/functional diff --git a/travis/phpunit-postgres-travis.xml b/travis/phpunit-postgres-travis.xml index 12e20547ba..3d1b574716 100644 --- a/travis/phpunit-postgres-travis.xml +++ b/travis/phpunit-postgres-travis.xml @@ -15,6 +15,10 @@ ../tests/ tests/functional + tests/lint_test.php + + + tests/lint_test.php ../tests/functional From 97f633bcedbdc0dd037559f9b7be3f8921a053df Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Fri, 12 Jul 2013 16:08:13 -0400 Subject: [PATCH 51/53] [ticket/11671] Add phing as a dependency and upgrade deps PHPBB3-11671 --- phpBB/composer.json | 3 +- phpBB/composer.lock | 170 +++++++++++++++++++++++++++++--------------- 2 files changed, 115 insertions(+), 58 deletions(-) diff --git a/phpBB/composer.json b/phpBB/composer.json index 14190f5e82..9e73936322 100644 --- a/phpBB/composer.json +++ b/phpBB/composer.json @@ -2,6 +2,7 @@ "require-dev": { "fabpot/goutte": "v0.1.0", "phpunit/dbunit": "1.2.*", - "phpunit/phpunit": "3.7.*" + "phpunit/phpunit": "3.7.*", + "phing/phing": "2.4.*" } } diff --git a/phpBB/composer.lock b/phpBB/composer.lock index 70b352a320..dd09b6cd56 100644 --- a/phpBB/composer.lock +++ b/phpBB/composer.lock @@ -1,9 +1,5 @@ { - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" - ], - "hash": "656de56578d4eb3e4779bc0ab95524f5", + "hash": "ef6d05965cca4e390fff7ce63e9d2d49", "packages": [ ], @@ -152,6 +148,58 @@ ], "time": "2012-12-19 23:06:35" }, + { + "name": "phing/phing", + "version": "2.4.14", + "source": { + "type": "git", + "url": "https://github.com/phingofficial/phing", + "reference": "2.4.14" + }, + "dist": { + "type": "zip", + "url": "https://github.com/phingofficial/phing/archive/2.4.14.zip", + "reference": "2.4.14", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "bin": [ + "bin/phing" + ], + "type": "library", + "autoload": { + "classmap": [ + "classes/phing/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "classes" + ], + "license": [ + "LGPL3" + ], + "authors": [ + { + "name": "Michiel Rook", + "email": "mrook@php.net" + }, + { + "name": "Phing Community", + "homepage": "http://www.phing.info/trac/wiki/Development/Contributors" + } + ], + "description": "PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.", + "homepage": "http://www.phing.info/", + "keywords": [ + "build", + "task", + "tool" + ], + "time": "2012-11-29 21:23:47" + }, { "name": "phpunit/dbunit", "version": "1.2.3", @@ -212,16 +260,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "1.2.9", + "version": "1.2.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "1.2.9" + "reference": "1.2.12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1.2.9", - "reference": "1.2.9", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1.2.12", + "reference": "1.2.12", "shasum": "" }, "require": { @@ -230,11 +278,19 @@ "phpunit/php-text-template": ">=1.1.1@stable", "phpunit/php-token-stream": ">=1.1.3@stable" }, + "require-dev": { + "phpunit/phpunit": "3.7.*@dev" + }, "suggest": { "ext-dom": "*", "ext-xdebug": ">=2.0.5" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, "autoload": { "classmap": [ "PHP/" @@ -261,7 +317,7 @@ "testing", "xunit" ], - "time": "2013-02-26 18:55:56" + "time": "2013-07-06 06:26:16" }, { "name": "phpunit/php-file-iterator", @@ -443,16 +499,16 @@ }, { "name": "phpunit/phpunit", - "version": "3.7.19", + "version": "3.7.22", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3.7.19" + "reference": "3.7.22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.19", - "reference": "3.7.19", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.22", + "reference": "3.7.22", "shasum": "" }, "require": { @@ -461,12 +517,12 @@ "ext-reflection": "*", "ext-spl": "*", "php": ">=5.3.3", - "phpunit/php-code-coverage": ">=1.2.1,<1.3.0", + "phpunit/php-code-coverage": "~1.2.1", "phpunit/php-file-iterator": ">=1.3.1", "phpunit/php-text-template": ">=1.1.1", - "phpunit/php-timer": ">=1.0.2,<1.1.0", - "phpunit/phpunit-mock-objects": ">=1.2.0,<1.3.0", - "symfony/yaml": ">=2.0.0,<2.3.0" + "phpunit/php-timer": "~1.0.2", + "phpunit/phpunit-mock-objects": "~1.2.0", + "symfony/yaml": "~2.0" }, "require-dev": { "pear-pear/pear": "1.9.4" @@ -513,7 +569,7 @@ "testing", "xunit" ], - "time": "2013-03-25 11:45:06" + "time": "2013-07-06 06:29:15" }, { "name": "phpunit/phpunit-mock-objects", @@ -566,17 +622,17 @@ }, { "name": "symfony/browser-kit", - "version": "v2.1.10", + "version": "v2.1.11", "target-dir": "Symfony/Component/BrowserKit", "source": { "type": "git", "url": "https://github.com/symfony/BrowserKit.git", - "reference": "v2.1.10" + "reference": "v2.1.11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/BrowserKit/zipball/v2.1.10", - "reference": "v2.1.10", + "url": "https://api.github.com/repos/symfony/BrowserKit/zipball/v2.1.11", + "reference": "v2.1.11", "shasum": "" }, "require": { @@ -616,17 +672,17 @@ }, { "name": "symfony/css-selector", - "version": "v2.1.10", + "version": "v2.1.11", "target-dir": "Symfony/Component/CssSelector", "source": { "type": "git", "url": "https://github.com/symfony/CssSelector.git", - "reference": "v2.1.10" + "reference": "v2.1.11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/CssSelector/zipball/v2.1.10", - "reference": "v2.1.10", + "url": "https://api.github.com/repos/symfony/CssSelector/zipball/v2.1.11", + "reference": "v2.1.11", "shasum": "" }, "require": { @@ -654,21 +710,21 @@ ], "description": "Symfony CssSelector Component", "homepage": "http://symfony.com", - "time": "2013-01-09 08:51:07" + "time": "2013-05-17 00:31:34" }, { "name": "symfony/dom-crawler", - "version": "v2.1.10", + "version": "v2.1.11", "target-dir": "Symfony/Component/DomCrawler", "source": { "type": "git", "url": "https://github.com/symfony/DomCrawler.git", - "reference": "v2.1.10" + "reference": "v2.1.11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/v2.1.10", - "reference": "v2.1.10", + "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/v2.1.11", + "reference": "v2.1.11", "shasum": "" }, "require": { @@ -702,21 +758,21 @@ ], "description": "Symfony DomCrawler Component", "homepage": "http://symfony.com", - "time": "2013-03-27 17:13:16" + "time": "2013-05-16 00:06:15" }, { "name": "symfony/event-dispatcher", - "version": "v2.2.1", + "version": "v2.3.1", "target-dir": "Symfony/Component/EventDispatcher", "source": { "type": "git", "url": "https://github.com/symfony/EventDispatcher.git", - "reference": "v2.2.1" + "reference": "v2.3.1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/v2.2.1", - "reference": "v2.2.1", + "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/v2.3.1", + "reference": "v2.3.1", "shasum": "" }, "require": { @@ -726,13 +782,13 @@ "symfony/dependency-injection": ">=2.0,<3.0" }, "suggest": { - "symfony/dependency-injection": "2.2.*", - "symfony/http-kernel": "2.2.*" + "symfony/dependency-injection": "", + "symfony/http-kernel": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.3-dev" } }, "autoload": { @@ -756,21 +812,21 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "http://symfony.com", - "time": "2013-02-11 11:26:43" + "time": "2013-05-13 14:36:40" }, { "name": "symfony/finder", - "version": "v2.1.10", + "version": "v2.1.11", "target-dir": "Symfony/Component/Finder", "source": { "type": "git", "url": "https://github.com/symfony/Finder.git", - "reference": "v2.1.10" + "reference": "v2.1.11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Finder/zipball/v2.1.10", - "reference": "v2.1.10", + "url": "https://api.github.com/repos/symfony/Finder/zipball/v2.1.11", + "reference": "v2.1.11", "shasum": "" }, "require": { @@ -798,21 +854,21 @@ ], "description": "Symfony Finder Component", "homepage": "http://symfony.com", - "time": "2013-03-06 19:26:55" + "time": "2013-05-25 15:47:15" }, { "name": "symfony/process", - "version": "v2.1.9", + "version": "v2.1.11", "target-dir": "Symfony/Component/Process", "source": { "type": "git", "url": "https://github.com/symfony/Process.git", - "reference": "v2.1.9" + "reference": "v2.1.11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Process/zipball/v2.1.9", - "reference": "v2.1.9", + "url": "https://api.github.com/repos/symfony/Process/zipball/v2.1.11", + "reference": "v2.1.11", "shasum": "" }, "require": { @@ -840,21 +896,21 @@ ], "description": "Symfony Process Component", "homepage": "http://symfony.com", - "time": "2013-03-23 07:44:01" + "time": "2013-05-06 10:21:56" }, { "name": "symfony/yaml", - "version": "v2.2.1", + "version": "v2.3.1", "target-dir": "Symfony/Component/Yaml", "source": { "type": "git", "url": "https://github.com/symfony/Yaml.git", - "reference": "v2.2.1" + "reference": "v2.3.1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.2.1", - "reference": "v2.2.1", + "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.3.1", + "reference": "v2.3.1", "shasum": "" }, "require": { @@ -863,7 +919,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.3-dev" } }, "autoload": { @@ -887,7 +943,7 @@ ], "description": "Symfony Yaml Component", "homepage": "http://symfony.com", - "time": "2013-03-23 07:49:54" + "time": "2013-05-10 18:12:13" } ], "aliases": [ From 678cccfb049e9988f913afa1aee031c0d7dfb682 Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Sat, 13 Jul 2013 09:14:22 -0500 Subject: [PATCH 52/53] [ticket/11671] Update composer.lock PHPBB3-11671 --- phpBB/composer.lock | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/phpBB/composer.lock b/phpBB/composer.lock index dd09b6cd56..c7194c2fb5 100644 --- a/phpBB/composer.lock +++ b/phpBB/composer.lock @@ -1,4 +1,8 @@ { + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" + ], "hash": "ef6d05965cca4e390fff7ce63e9d2d49", "packages": [ From 7b0a6ef06c0f84634ba6f2ba3c2c9d304e61a19a Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Sat, 13 Jul 2013 09:20:18 -0500 Subject: [PATCH 53/53] [ticket/11671] Update composer.lock PHPBB3-11671 --- phpBB/composer.lock | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/phpBB/composer.lock b/phpBB/composer.lock index a20c6303ee..7b18d2fd25 100644 --- a/phpBB/composer.lock +++ b/phpBB/composer.lock @@ -29,6 +29,7 @@ "Symfony\\Component\\Config": "" } }, + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -78,6 +79,7 @@ "Symfony\\Component\\DependencyInjection": "" } }, + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -126,6 +128,7 @@ "Symfony\\Component\\EventDispatcher": "" } }, + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -168,6 +171,7 @@ "SessionHandlerInterface": "Symfony/Component/HttpFoundation/Resources/stubs" } }, + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -229,6 +233,7 @@ "Symfony\\Component\\HttpKernel": "" } }, + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -281,6 +286,7 @@ "Symfony\\Component\\Routing": "" } }, + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -322,6 +328,7 @@ "Symfony\\Component\\Yaml": "" } }, + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -367,6 +374,7 @@ "Twig_": "lib/" } }, + "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3" ], @@ -593,16 +601,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "1.2.11", + "version": "1.2.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "1.2.11" + "reference": "1.2.12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1.2.11", - "reference": "1.2.11", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1.2.12", + "reference": "1.2.12", "shasum": "" }, "require": { @@ -612,13 +620,18 @@ "phpunit/php-token-stream": ">=1.1.3@stable" }, "require-dev": { - "phpunit/phpunit": "3.7.*" + "phpunit/phpunit": "3.7.*@dev" }, "suggest": { "ext-dom": "*", "ext-xdebug": ">=2.0.5" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, "autoload": { "classmap": [ "PHP/" @@ -645,7 +658,7 @@ "testing", "xunit" ], - "time": "2013-05-23 18:23:24" + "time": "2013-07-06 06:26:16" }, { "name": "phpunit/php-file-iterator", @@ -827,16 +840,16 @@ }, { "name": "phpunit/phpunit", - "version": "3.7.21", + "version": "3.7.22", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3.7.21" + "reference": "3.7.22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.21", - "reference": "3.7.21", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.22", + "reference": "3.7.22", "shasum": "" }, "require": { @@ -845,12 +858,12 @@ "ext-reflection": "*", "ext-spl": "*", "php": ">=5.3.3", - "phpunit/php-code-coverage": ">=1.2.1,<1.3.0", + "phpunit/php-code-coverage": "~1.2.1", "phpunit/php-file-iterator": ">=1.3.1", "phpunit/php-text-template": ">=1.1.1", - "phpunit/php-timer": ">=1.0.2,<1.1.0", - "phpunit/phpunit-mock-objects": ">=1.2.0,<1.3.0", - "symfony/yaml": ">=2.0,<3.0" + "phpunit/php-timer": "~1.0.2", + "phpunit/phpunit-mock-objects": "~1.2.0", + "symfony/yaml": "~2.0" }, "require-dev": { "pear-pear/pear": "1.9.4" @@ -897,7 +910,7 @@ "testing", "xunit" ], - "time": "2013-05-23 18:54:29" + "time": "2013-07-06 06:29:15" }, { "name": "phpunit/phpunit-mock-objects",