From 792882ef63977c6b7ca068c65383fb8be8372172 Mon Sep 17 00:00:00 2001
From: EA117 <admin@ea117.com>
Date: Sun, 28 Jul 2019 15:15:39 -0500
Subject: [PATCH] [ticket/16054] Restore ability to login from any template.

Moving the login form's add_form_key() work into page_header(), so that the
template variables required for presenting a login form are again available
to any template that chooses to consume them.

PHPBB3-16054
---
 phpBB/includes/functions.php | 10 ++++------
 phpBB/index.php              |  3 ---
 phpBB/viewforum.php          |  3 ---
 3 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 5cc6826cb9..3a3cc44ad5 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -2526,9 +2526,6 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
 		));
 	}
 
-	// Add form token for login box
-	add_form_key($form_name, '_LOGIN');
-
 	$s_hidden_fields = build_hidden_fields($s_hidden_fields);
 
 	$login_box_template_data = array(
@@ -2663,9 +2660,6 @@ function login_forum_box($forum_data)
 
 	page_header($user->lang['LOGIN']);
 
-	// Add form token for login box
-	add_form_key('login', '_LOGIN');
-
 	$template->assign_vars(array(
 		'FORUM_NAME'			=> isset($forum_data['forum_name']) ? $forum_data['forum_name'] : '',
 		'S_LOGIN_ACTION'		=> build_url(array('f')),
@@ -4439,6 +4433,10 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
 	$notification_mark_hash = generate_link_hash('mark_all_notifications_read');
 
 	$s_login_redirect = build_hidden_fields(array('redirect' => $phpbb_path_helper->remove_web_root_path(build_url())));
+
+	// Add form token for login box, in case page is presenting a login form.
+	add_form_key('login', '_LOGIN');
+
 	/**
 	 * Workaround for missing template variable in pre phpBB 3.2.6 styles.
 	 * @deprecated 3.2.7 (To be removed: 3.3.0-a1)
diff --git a/phpBB/index.php b/phpBB/index.php
index 5eee7723a9..13b914abd3 100644
--- a/phpBB/index.php
+++ b/phpBB/index.php
@@ -211,9 +211,6 @@ if ($show_birthdays)
 	$template->assign_block_vars_array('birthdays', $birthdays);
 }
 
-// Add form token for login box
-add_form_key('login', '_LOGIN');
-
 // Assign index specific vars
 $template->assign_vars(array(
 	'TOTAL_POSTS'	=> $user->lang('TOTAL_POSTS_COUNT', (int) $config['num_posts']),
diff --git a/phpBB/viewforum.php b/phpBB/viewforum.php
index 5525a0d462..72c96e2d2d 100644
--- a/phpBB/viewforum.php
+++ b/phpBB/viewforum.php
@@ -198,9 +198,6 @@ if (!($forum_data['forum_type'] == FORUM_POST || (($forum_data['forum_flags'] &
 // We also make this circumstance available to the template in case we want to display a notice. ;)
 if (!$auth->acl_gets('f_read', 'f_list_topics', $forum_id))
 {
-	// Add form token for login box
-	add_form_key('login', '_LOGIN');
-
 	$template->assign_vars(array(
 		'S_NO_READ_ACCESS'		=> true,
 	));