[feature/oauth] Login_link works with ucp_register now

PHPBB3-11673
This commit is contained in:
Joseph Warner 2013-07-31 14:54:16 -04:00
parent 3b19d5c198
commit aa80ac44a4

View file

@ -81,6 +81,7 @@ class ucp_register
$cp = new custom_profile(); $cp = new custom_profile();
$error = $cp_data = $cp_error = array(); $error = $cp_data = $cp_error = array();
$s_hidden_fields = array();
// Handle login_link data added to $_hidden_fields // Handle login_link data added to $_hidden_fields
$login_link_data = $this->get_login_link_data_array(); $login_link_data = $this->get_login_link_data_array();
@ -91,13 +92,13 @@ class ucp_register
$auth_provider = 'auth.provider.' . $request->variable('auth_provider', $config['auth_method']); $auth_provider = 'auth.provider.' . $request->variable('auth_provider', $config['auth_method']);
$auth_provider = $phpbb_container->get($auth_provider); $auth_provider = $phpbb_container->get($auth_provider);
$result = $auth_provider->login_link_has_necessary_data($data); $result = $auth_provider->login_link_has_necessary_data($login_link_data);
if ($result !== null) if ($result !== null)
{ {
$error[] = $user->lang[$result]; $error[] = $user->lang[$result];
} }
$s_hidden_fields = array_merge($s_hidden_fields, $login_link_data); $s_hidden_fields = array_merge($s_hidden_fields, $this->get_login_link_data_for_hidden_fields($login_link_data));
} }
if (!$agreed || ($coppa === false && $config['coppa_enable']) || ($coppa && !$config['coppa_enable'])) if (!$agreed || ($coppa === false && $config['coppa_enable']) || ($coppa && !$config['coppa_enable']))
@ -105,9 +106,9 @@ class ucp_register
$add_lang = ($change_lang) ? '&change_lang=' . urlencode($change_lang) : ''; $add_lang = ($change_lang) ? '&change_lang=' . urlencode($change_lang) : '';
$add_coppa = ($coppa !== false) ? '&coppa=' . $coppa : ''; $add_coppa = ($coppa !== false) ? '&coppa=' . $coppa : '';
$s_hidden_fields = array( $s_hidden_fields = array_merge($s_hidden_fields, array(
'change_lang' => $change_lang, 'change_lang' => $change_lang,
); ));
// If we change the language, we want to pass on some more possible parameter. // If we change the language, we want to pass on some more possible parameter.
if ($change_lang) if ($change_lang)
@ -433,10 +434,10 @@ class ucp_register
} }
} }
$s_hidden_fields = array( $s_hidden_fields = array_merge($s_hidden_fields, array(
'agreed' => 'true', 'agreed' => 'true',
'change_lang' => 0, 'change_lang' => 0,
); ));
if ($config['coppa_enable']) if ($config['coppa_enable'])
{ {
@ -516,10 +517,23 @@ class ucp_register
{ {
if (strpos($var_name, 'login_link_') === 0) if (strpos($var_name, 'login_link_') === 0)
{ {
$login_link_data[$var_name] = $request->variable($var_name, '', false, phpbb_request_interface::POST); $key_name = str_replace('login_link_', '', $var_name);
$login_link_data[$key_name] = $request->variable($var_name, '', false, phpbb_request_interface::POST);
} }
} }
return $login_link_data; return $login_link_data;
} }
protected function get_login_link_data_for_hidden_fields($data)
{
$new_data = array();
foreach ($data as $key => $value)
{
$new_data['login_link_' . $key] = $value;
}
return $new_data;
}
} }