2013-08-05 15:34:26 -04:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @package notifications
|
|
|
|
* @copyright (c) 2013 phpBB Group
|
|
|
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @ignore
|
|
|
|
*/
|
|
|
|
if (!defined('IN_PHPBB'))
|
|
|
|
{
|
|
|
|
exit;
|
|
|
|
}
|
|
|
|
|
|
|
|
class ucp_auth_link
|
|
|
|
{
|
|
|
|
public $u_action;
|
|
|
|
|
|
|
|
public function main($id, $mode)
|
|
|
|
{
|
2013-08-09 05:16:39 -04:00
|
|
|
global $config, $request, $template, $phpbb_container;
|
|
|
|
|
2013-08-12 12:53:10 -04:00
|
|
|
$error = array();
|
|
|
|
|
2013-08-09 05:16:39 -04:00
|
|
|
$auth_provider = $phpbb_container->get('auth.provider.' . $config['auth_method']);
|
|
|
|
|
|
|
|
// confirm that the auth provider supports this page
|
|
|
|
$provider_data = $auth_provider->get_auth_link_data();
|
|
|
|
if ($provider_data === null)
|
|
|
|
{
|
2013-08-12 12:53:10 -04:00
|
|
|
$error[] = 'UCP_AUTH_LINK_NOT_SUPPORTED';
|
2013-08-09 05:16:39 -04:00
|
|
|
}
|
2013-08-09 05:12:41 -04:00
|
|
|
|
|
|
|
$s_hidden_fields = array();
|
|
|
|
add_form_key('ucp_auth_link');
|
|
|
|
|
|
|
|
$submit = $request->variable('submit', false, false, phpbb_request_interface::POST);
|
|
|
|
|
2013-08-12 12:53:10 -04:00
|
|
|
if (!sizeof($error) && $submit)
|
2013-08-09 05:12:41 -04:00
|
|
|
{
|
|
|
|
if (!check_form_key('ucp_reg_details'))
|
|
|
|
{
|
|
|
|
$error[] = 'FORM_INVALID';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!sizeof($error))
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-08-12 14:43:18 -04:00
|
|
|
if (isset($provider_data['VARS']))
|
|
|
|
{
|
2013-08-12 15:29:08 -04:00
|
|
|
// Handle hidden fields separately
|
|
|
|
if (isset($provider_data['VARS']['HIDDEN_FIELDS']))
|
|
|
|
{
|
|
|
|
$s_hidden_fields = array_merge($s_hidden_fields, $provider_data['VARS']['HIDDEN_FIELDS']);
|
|
|
|
unset($provider_data['VARS']['HIDDEN_FIELDS']);
|
|
|
|
}
|
|
|
|
|
2013-08-12 14:43:18 -04:00
|
|
|
$template->assign_vars($provider_data['VARS']);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($provider_data['BLOCK_VAR_NAME']))
|
|
|
|
{
|
|
|
|
foreach ($provider_data['BLOCK_VARS'] as $block_vars)
|
|
|
|
{
|
2013-08-12 15:29:08 -04:00
|
|
|
// See if there are additional hidden fields. This should be an associative array
|
|
|
|
if (isset($block_vars['HIDDEN_FIELDS']))
|
|
|
|
{
|
|
|
|
$block_vars['HIDDEN_FIELDS'] = build_hidden_fields($block_vars['HIDDEN_FIELDS']);
|
|
|
|
}
|
|
|
|
|
2013-08-12 14:43:18 -04:00
|
|
|
$template->assign_block_vars($provider_data['BLOCK_VAR_NAME'], $block_vars);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-08-09 05:12:41 -04:00
|
|
|
$s_hidden_fields = build_hidden_fields($s_hidden_fields);
|
|
|
|
|
|
|
|
$template->assign_vars(array(
|
2013-08-12 12:53:10 -04:00
|
|
|
'ERROR' => $this->build_error_text($error),
|
|
|
|
|
2013-08-09 05:26:44 -04:00
|
|
|
'PROVIDER_TEMPLATE_FILE' => $provider_data['TEMPLATE_FILE'],
|
|
|
|
|
2013-08-09 05:12:41 -04:00
|
|
|
'S_HIDDEN_FIELDS' => $s_hidden_fields,
|
|
|
|
'S_UCP_ACTION' => $this->u_action,
|
|
|
|
));
|
|
|
|
|
2013-08-05 15:34:26 -04:00
|
|
|
$this->tpl_name = 'ucp_auth_link';
|
|
|
|
$this->page_title = 'UCP_AUTH_LINK';
|
|
|
|
}
|
2013-08-12 12:53:10 -04:00
|
|
|
|
|
|
|
private function build_error_text(array $errors)
|
|
|
|
{
|
|
|
|
global $user;
|
|
|
|
|
|
|
|
// Replace all errors that are language constants
|
|
|
|
foreach ($errors as $key => $error)
|
|
|
|
{
|
|
|
|
if (isset($user->lang[$error]))
|
|
|
|
{
|
|
|
|
$errors[$key] = $user->lang($error);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return implode('<br />', $errors);
|
|
|
|
}
|
2013-08-05 15:34:26 -04:00
|
|
|
}
|