- Bug #56255 - Moving topics to a forum where you are on queue

- Allow some error handling in compress class by returning false if file does not exist. 

git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@10427 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Josh Woody 2010-01-18 16:41:21 +00:00
parent cb389894e9
commit ad14664a3a
5 changed files with 22 additions and 9 deletions

View file

@ -131,6 +131,8 @@
<li>[Fix] Pagination of User Notes in MCP uses two different config values. (Bug #56025)</li> <li>[Fix] Pagination of User Notes in MCP uses two different config values. (Bug #56025)</li>
<li>[Fix] List hidden groups on viewprofile where the viewing user is also a member. (Bug #31845)</li> <li>[Fix] List hidden groups on viewprofile where the viewing user is also a member. (Bug #31845)</li>
<li>[Fix] Sort viewprofile group list by group name.</li> <li>[Fix] Sort viewprofile group list by group name.</li>
<li>[Fix] Strictly check whether a moderator can post in the destination forum when moving topic. (Bug #56255)</li>
<li>[Fix] Added some error handling to the compress class.</li>
<li>[Fix] Correctly determine permissions to show quick reply button. (Bug #56555)</li> <li>[Fix] Correctly determine permissions to show quick reply button. (Bug #56555)</li>
<li>[Fix] Do not unsubscribe users from topics replying with quickreply. (Bug #56235)</li> <li>[Fix] Do not unsubscribe users from topics replying with quickreply. (Bug #56235)</li>
<li>[Fix] Don't submit when pressing enter on preview button. (Bug #54395)</li> <li>[Fix] Don't submit when pressing enter on preview button. (Bug #54395)</li>

View file

@ -66,8 +66,6 @@ function make_forum_select($select_id = false, $ignore_id = false, $ignore_acl =
{ {
global $db, $user, $auth; global $db, $user, $auth;
$acl = ($ignore_acl) ? '' : (($only_acl_post) ? 'f_post' : array('f_list', 'a_forum', 'a_forumadd', 'a_forumdel'));
// This query is identical to the jumpbox one // This query is identical to the jumpbox one
$sql = 'SELECT forum_id, forum_name, parent_id, forum_type, forum_flags, forum_options, left_id, right_id $sql = 'SELECT forum_id, forum_name, parent_id, forum_type, forum_flags, forum_options, left_id, right_id
FROM ' . FORUMS_TABLE . ' FROM ' . FORUMS_TABLE . '
@ -98,18 +96,21 @@ function make_forum_select($select_id = false, $ignore_id = false, $ignore_acl =
$right = $row['right_id']; $right = $row['right_id'];
$disabled = false; $disabled = false;
if ($acl && !$auth->acl_gets($acl, $row['forum_id'])) if (!$ignore_acl && $auth->acl_get('f_list', $row['forum_id']))
{ {
// List permission? if ($only_acl_post && !$auth->acl_get('f_post', $row['forum_id']) || (!$auth->acl_get('m_approve', $row['forum_id']) && !$auth->acl_get('f_noapprove', $row['forum_id'])))
if ($auth->acl_get('f_list', $row['forum_id']))
{ {
$disabled = true; $disabled = true;
} }
else else if (!$only_acl_post && !$auth->acl_gets(array('a_forum', 'a_forumadd', 'a_forumdel'), $row['forum_id']))
{ {
continue; $disabled = true;
} }
} }
else if (!$ignore_acl)
{
continue;
}
if ( if (
((is_array($ignore_id) && in_array($row['forum_id'], $ignore_id)) || $row['forum_id'] == $ignore_id) ((is_array($ignore_id) && in_array($row['forum_id'], $ignore_id)) || $row['forum_id'] == $ignore_id)

View file

@ -80,6 +80,11 @@ class compress
} }
} }
} }
else
{
// $src does not exist
return false;
}
return true; return true;
} }
@ -89,6 +94,11 @@ class compress
*/ */
function add_custom_file($src, $filename) function add_custom_file($src, $filename)
{ {
if (!file_exists($src))
{
return false;
}
$this->data($filename, file_get_contents($src), false, stat($src)); $this->data($filename, file_get_contents($src), false, stat($src));
return true; return true;
} }

View file

@ -568,7 +568,7 @@ function mcp_move_topic($topic_ids)
{ {
$additional_msg = $user->lang['FORUM_NOT_POSTABLE']; $additional_msg = $user->lang['FORUM_NOT_POSTABLE'];
} }
else if (!$auth->acl_get('f_post', $to_forum_id)) else if (!$auth->acl_get('f_post', $to_forum_id) || (!$auth->acl_get('m_approve', $to_forum_id) && !$auth->acl_get('f_noapprove', $to_forum_id)))
{ {
$additional_msg = $user->lang['USER_CANNOT_POST']; $additional_msg = $user->lang['USER_CANNOT_POST'];
} }

View file

@ -992,7 +992,7 @@ if ($submit || $preview || $refresh)
$forum_type = (int) $db->sql_fetchfield('forum_type'); $forum_type = (int) $db->sql_fetchfield('forum_type');
$db->sql_freeresult($result); $db->sql_freeresult($result);
if ($forum_type != FORUM_POST || !$auth->acl_get('f_post', $to_forum_id)) if ($forum_type != FORUM_POST || !$auth->acl_get('f_post', $to_forum_id) || (!$auth->acl_get('m_approve', $to_forum_id) && !$auth->acl_get('f_noapprove', $to_forum_id)))
{ {
$to_forum_id = 0; $to_forum_id = 0;
} }