diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index ed177b6d18..44e03912da 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -147,6 +147,7 @@
[Change] It is no longer possible to persist a solution for the login CAPTCHA.
[Change] SQLite is no longer autoloaded by the installer. (Bug #56105)
[Change] Friends and foes will not show up as private message rule options if their respective UCP modules are disabled. (Bug #51155)
+ [Change] Offer for guests to log in for egosearch and unreadposts search before the search permissions check. (Bug #51585)
1.ii. Changes since 3.0.5
diff --git a/phpBB/search.php b/phpBB/search.php
index c70f389b94..ab2221a96e 100644
--- a/phpBB/search.php
+++ b/phpBB/search.php
@@ -47,6 +47,26 @@ $sort_dir = request_var('sd', 'd');
$return_chars = request_var('ch', ($topic_id) ? -1 : 300);
$search_forum = request_var('fid', array(0));
+// We put login boxes for the case if search_id is egosearch or unreadposts
+// because a guest should be able to log in even if guests search is not permitted
+
+// Egosearch is an author search
+if ($search_id == 'egosearch')
+{
+ $author_id = $user->data['user_id'];
+
+ if ($user->data['user_id'] == ANONYMOUS)
+ {
+ login_box('', $user->lang['LOGIN_EXPLAIN_EGOSEARCH']);
+ }
+}
+
+// Search for unread posts needs user to be logged in if topics tracking for guests is disabled
+if ($search_id == 'unreadposts' && !$config['load_anon_lastread'] && !$user->data['is_registered'])
+{
+ login_box('', $user->lang['LOGIN_EXPLAIN_UNREADSEARCH']);
+}
+
// Is user able to search? Has search been disabled?
if (!$auth->acl_get('u_search') || !$auth->acl_getf_global('f_search') || !$config['load_search'])
{
@@ -84,24 +104,6 @@ if ($keywords || $author || $author_id || $search_id || $submit)
// clear arrays
$id_ary = array();
- // egosearch is an author search
- if ($search_id == 'egosearch')
- {
- $author_id = $user->data['user_id'];
-
- if ($user->data['user_id'] == ANONYMOUS)
- {
- login_box('', $user->lang['LOGIN_EXPLAIN_EGOSEARCH']);
- }
- }
-
- // search for unread posts needs user to be logged in
- // if topics tracking for guests is disabled
- if ($search_id == 'unreadposts' && !$config['load_anon_lastread'] && !$user->data['is_registered'])
- {
- login_box('', $user->lang['LOGIN_EXPLAIN_UNREADSEARCH']);
- }
-
// If we are looking for authors get their ids
$author_id_ary = array();
$sql_author_match = '';