From b0e6b1dd98a6458d9a6d1c40369dfd8402411077 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Fri, 5 Jul 2013 13:31:05 -0400 Subject: [PATCH] [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 *