aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2012-10-01 22:44:39 +0200
committerJoas Schilling <nickvergessen@gmx.de>2012-10-01 22:44:39 +0200
commitb629b2cd95a9da67376f7a628c15199007e2ebd6 (patch)
tree2d6f56ea3bf15d17e1cba873d506bf3e1d3d1698 /phpBB
parent4a65940e6206aef6b85a0aacfb5324ecabf76e12 (diff)
downloadforums-b629b2cd95a9da67376f7a628c15199007e2ebd6.tar
forums-b629b2cd95a9da67376f7a628c15199007e2ebd6.tar.gz
forums-b629b2cd95a9da67376f7a628c15199007e2ebd6.tar.bz2
forums-b629b2cd95a9da67376f7a628c15199007e2ebd6.tar.xz
forums-b629b2cd95a9da67376f7a628c15199007e2ebd6.zip
[feature/soft-delete] Add unit tests for get_global_visibility_sql()
PHPBB3-9657
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/includes/content_visibility.php12
-rw-r--r--phpBB/search.php4
2 files changed, 12 insertions, 4 deletions
diff --git a/phpBB/includes/content_visibility.php b/phpBB/includes/content_visibility.php
index a598d863a4..e927460a49 100644
--- a/phpBB/includes/content_visibility.php
+++ b/phpBB/includes/content_visibility.php
@@ -135,12 +135,20 @@ class phpbb_content_visibility
* @param $table_alias string - Table alias to prefix in SQL queries
* @return string with the appropriate combination SQL logic for topic/post_visibility
*/
- static public function get_visibility_sql_global($mode, $exclude_forum_ids = array(), $table_alias = '')
+ static public function get_global_visibility_sql($mode, $exclude_forum_ids = array(), $table_alias = '')
{
global $auth, $db, $user;
// users can always see approved posts
- $where_sql = "($table_alias{$mode}_visibility = " . ITEM_APPROVED;
+ if (sizeof($exclude_forum_ids))
+ {
+ $where_sql = '((' . $db->sql_in_set($table_alias . 'forum_id', $exclude_forum_ids, true, true) . "
+ AND $table_alias{$mode}_visibility = " . ITEM_APPROVED . ')';
+ }
+ else
+ {
+ $where_sql = "($table_alias{$mode}_visibility = " . ITEM_APPROVED;
+ }
// in set notation: {approve_forums} = {m_approve} - {exclude_forums}
$approve_forums = array_diff(array_keys($auth->acl_getf('m_approve', true)), $exclude_forum_ids);
diff --git a/phpBB/search.php b/phpBB/search.php
index 8365a96fa2..c45c46e27a 100644
--- a/phpBB/search.php
+++ b/phpBB/search.php
@@ -250,8 +250,8 @@ if ($keywords || $author || $author_id || $search_id || $submit)
$db->sql_freeresult($result);
// find out in which forums the user is allowed to view posts
- $m_approve_posts_fid_sql = phpbb_content_visibility::get_visibility_sql_global('post', $ex_fid_ary, 'p.');
- $m_approve_topics_fid_sql = phpbb_content_visibility::get_visibility_sql_global('topic', $ex_fid_ary, 't.');
+ $m_approve_posts_fid_sql = phpbb_content_visibility::get_global_visibility_sql('post', $ex_fid_ary, 'p.');
+ $m_approve_topics_fid_sql = phpbb_content_visibility::get_global_visibility_sql('topic', $ex_fid_ary, 't.');
if ($reset_search_forum)
{