From 44ed05f5678b36d907555ed040229564b336632f Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 29 Aug 2012 19:30:33 +0200 Subject: [PATCH] [feature/soft-delete] Simplify the query output if the user has m_restore PHPBB3-9657 --- phpBB/includes/content_visibility.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/phpBB/includes/content_visibility.php b/phpBB/includes/content_visibility.php index 12b51df3bb..5c3e9d39dd 100644 --- a/phpBB/includes/content_visibility.php +++ b/phpBB/includes/content_visibility.php @@ -42,6 +42,11 @@ class phpbb_content_visibility if ($auth->acl_get('m_restore', $forum_id)) { $status_ary[] = ITEM_DELETED; + + // If the user has m_restore, the rest of the function will not + // make more content visible, so we can return the query here. + // This avoids one OR in all queries + return $db->sql_in_set($table_alias . $mode . '_visibility', $status_ary); } $clause = $db->sql_in_set($table_alias . $mode . '_visibility', $status_ary); @@ -52,8 +57,7 @@ class phpbb_content_visibility $poster_column = ($mode == 'topic') ? 'topic_poster' : 'poster_id'; $clause = '(' . $clause . " OR ($table_alias{$mode}_visibility = " . ITEM_DELETED . " - AND $table_alias$poster_column = " . $user->data['user_id'] . '))'; - + AND $table_alias$poster_column = " . (int) $user->data['user_id'] . '))'; } return $clause;