diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2012-10-01 22:44:39 +0200 |
---|---|---|
committer | Joas Schilling <nickvergessen@gmx.de> | 2012-10-01 22:44:39 +0200 |
commit | b629b2cd95a9da67376f7a628c15199007e2ebd6 (patch) | |
tree | 2d6f56ea3bf15d17e1cba873d506bf3e1d3d1698 /phpBB | |
parent | 4a65940e6206aef6b85a0aacfb5324ecabf76e12 (diff) | |
download | forums-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.php | 12 | ||||
-rw-r--r-- | phpBB/search.php | 4 |
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) { |