mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
[feature/oauth] Add get_login_data to the auth_provider_interface
PHPBB3-11673
This commit is contained in:
parent
381e7c347b
commit
245e71e4e2
4 changed files with 50 additions and 3 deletions
|
@ -3367,6 +3367,26 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
|
|||
$s_hidden_fields['credential'] = $credential;
|
||||
}
|
||||
|
||||
$auth_provider = $phpbb_container->get('auth.provider.' . $config['auth_method']);
|
||||
|
||||
$auth_provider_data = $auth_provider->get_login_data();
|
||||
if ($auth_provider_data)
|
||||
{
|
||||
if (isset($auth_provider_data['VARS']))
|
||||
{
|
||||
$template->assign_vars($auth_provider_data['VARS']);
|
||||
}
|
||||
|
||||
if (isset($auth_provider_data['BLOCK_VAR_NAME']))
|
||||
{
|
||||
$template->assign_block_vars($auth_provider_data['BLOCK_VAR_NAME'], $auth_provider_data['BLOCK_VARS']);
|
||||
}
|
||||
|
||||
$template->assign_vars(array(
|
||||
'PROVIDER_TEMPLATE_FILE' => $auth_provider_data['TEMPLATE_FILE'],
|
||||
));
|
||||
}
|
||||
|
||||
$oauth_login = ($config['auth_method'] == 'oauth') ? true : false;
|
||||
|
||||
if ($oauth_login)
|
||||
|
|
|
@ -54,6 +54,14 @@ abstract class phpbb_auth_provider_base implements phpbb_auth_provider_interface
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function get_login_data()
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -106,6 +106,27 @@ interface phpbb_auth_provider_interface
|
|||
*/
|
||||
public function get_acp_template($new_config);
|
||||
|
||||
/**
|
||||
* Returns an array of data necessary to build custom elements on the login
|
||||
* form.
|
||||
*
|
||||
* @return array|null If this function is not implemented on an auth
|
||||
* provider then it returns null. If it is implemented
|
||||
* it will return an array of up to four elements of
|
||||
* which only 'TEMPLATE_FILE'. If 'BLOCK_VAR_NAME' is
|
||||
* present then 'BLOCK_VARS' must also be present in
|
||||
* the array. The fourth element 'VARS' is also
|
||||
* optional. The array, with all four elements present
|
||||
* looks like the following:
|
||||
* array(
|
||||
* 'TEMPLATE_FILE' => string,
|
||||
* 'BLOCK_VAR_NAME' => string,
|
||||
* 'BLOCK_VARS' => array(...),
|
||||
* 'VARS' => array(...),
|
||||
* )
|
||||
*/
|
||||
public function get_login_data();
|
||||
|
||||
/**
|
||||
* Performs additional actions during logout.
|
||||
*
|
||||
|
|
|
@ -274,9 +274,7 @@ class phpbb_auth_provider_oauth extends phpbb_auth_provider_base
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns an array of login data for all enabled OAuth services.
|
||||
*
|
||||
* @return array
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function get_login_data()
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue