[ Index ] |
PHP Cross Reference of phpBB-3.2.11-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * 4 * This file is part of the phpBB Forum Software package. 5 * 6 * @copyright (c) phpBB Limited <https://www.phpbb.com> 7 * @license GNU General Public License, version 2 (GPL-2.0) 8 * 9 * For full copyright and license information, please see 10 * the docs/CREDITS.txt file. 11 * 12 */ 13 14 /** 15 * @ignore 16 */ 17 if (!defined('IN_PHPBB')) 18 { 19 exit; 20 } 21 22 class ucp_auth_link 23 { 24 /** 25 * @var string 26 */ 27 public $u_action; 28 29 /** 30 * Generates the ucp_auth_link page and handles the auth link process 31 * 32 * @param int $id 33 * @param string $mode 34 */ 35 public function main($id, $mode) 36 { 37 global $request, $template, $phpbb_container, $user; 38 39 $error = array(); 40 41 /* @var $provider_collection \phpbb\auth\provider_collection */ 42 $provider_collection = $phpbb_container->get('auth.provider_collection'); 43 $auth_provider = $provider_collection->get_provider(); 44 45 // confirm that the auth provider supports this page 46 $provider_data = $auth_provider->get_auth_link_data(); 47 if ($provider_data === null) 48 { 49 $error[] = 'UCP_AUTH_LINK_NOT_SUPPORTED'; 50 } 51 52 $s_hidden_fields = array(); 53 add_form_key('ucp_auth_link'); 54 55 $submit = $request->variable('submit', false, false, \phpbb\request\request_interface::POST); 56 57 // This path is only for primary actions 58 if (!count($error) && $submit) 59 { 60 if (!check_form_key('ucp_auth_link')) 61 { 62 $error[] = 'FORM_INVALID'; 63 } 64 65 if (!count($error)) 66 { 67 // Any post data could be necessary for auth (un)linking 68 $link_data = $request->get_super_global(\phpbb\request\request_interface::POST); 69 70 // The current user_id is also necessary 71 $link_data['user_id'] = $user->data['user_id']; 72 73 // Tell the provider that the method is auth_link not login_link 74 $link_data['link_method'] = 'auth_link'; 75 76 if ($request->variable('link', 0, false, \phpbb\request\request_interface::POST)) 77 { 78 $error[] = $auth_provider->link_account($link_data); 79 } 80 else 81 { 82 $error[] = $auth_provider->unlink_account($link_data); 83 } 84 85 // Template data may have changed, get new data 86 $provider_data = $auth_provider->get_auth_link_data(); 87 } 88 } 89 90 // In some cases, a request to an external server may be required. In 91 // these cases, the GET parameter 'link' should exist and should be true 92 if ($request->variable('link', false)) 93 { 94 // In this case the link data should only be populated with the 95 // link_method as the provider dictates how data is returned to it. 96 $link_data = array('link_method' => 'auth_link'); 97 98 $error[] = $auth_provider->link_account($link_data); 99 100 // Template data may have changed, get new data 101 $provider_data = $auth_provider->get_auth_link_data(); 102 } 103 104 if (isset($provider_data['VARS'])) 105 { 106 // Handle hidden fields separately 107 if (isset($provider_data['VARS']['HIDDEN_FIELDS'])) 108 { 109 $s_hidden_fields = array_merge($s_hidden_fields, $provider_data['VARS']['HIDDEN_FIELDS']); 110 unset($provider_data['VARS']['HIDDEN_FIELDS']); 111 } 112 113 $template->assign_vars($provider_data['VARS']); 114 } 115 116 if (isset($provider_data['BLOCK_VAR_NAME'])) 117 { 118 foreach ($provider_data['BLOCK_VARS'] as $block_vars) 119 { 120 // See if there are additional hidden fields. This should be an associative array 121 if (isset($block_vars['HIDDEN_FIELDS'])) 122 { 123 $block_vars['HIDDEN_FIELDS'] = build_hidden_fields($block_vars['HIDDEN_FIELDS']); 124 } 125 126 $template->assign_block_vars($provider_data['BLOCK_VAR_NAME'], $block_vars); 127 } 128 } 129 130 $s_hidden_fields = build_hidden_fields($s_hidden_fields); 131 132 // Replace "error" strings with their real, localised form 133 $error = array_map(array($user, 'lang'), $error); 134 $error = implode('<br />', $error); 135 136 $template->assign_vars(array( 137 'ERROR' => $error, 138 139 'PROVIDER_TEMPLATE_FILE' => $provider_data['TEMPLATE_FILE'], 140 141 'S_HIDDEN_FIELDS' => $s_hidden_fields, 142 'S_UCP_ACTION' => $this->u_action, 143 )); 144 145 $this->tpl_name = 'ucp_auth_link'; 146 $this->page_title = 'UCP_AUTH_LINK'; 147 } 148 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |