Okay, so I'm looking at the code and I don't see how this bug report is possible.
function save_quick_perms($fid)
{
global $db, $inherit, $canview, $canpostthreads, $canpostreplies, $canpostpolls, $canpostattachments, $cache;
$query = $db->simple_select("usergroups", "gid");
while($usergroup = $db->fetch_array($query))
{
$query2 = $db->simple_select("forumpermissions", "canviewthreads,candlattachments,canratethreads,caneditposts,candeleteposts,candeletethreads,caneditattachments,canvotepolls,cansearch", "fid='{$fid}' AND gid='{$usergroup['gid']}'", array('limit' => 1));
$existing_permissions = $db->fetch_array($query2);
// Delete existing permissions
$db->delete_query("forumpermissions", "fid='{$fid}' AND gid='{$usergroup['gid']}'");
// Only insert the new ones if we're using custom permissions
if($inherit[$usergroup['gid']] != 1)
{
if($canview[$usergroup['gid']] == 1)
{
$pview = 1;
}
else
{
$pview = 0;
}
if($canpostthreads[$usergroup['gid']] == 1)
{
$pthreads = 1;
}
else
{
$pthreads = 0;
}
if($canpostreplies[$usergroup['gid']] == 1)
{
$preplies = 1;
}
else
{
$preplies = 0;
}
if($canpostpolls[$usergroup['gid']] == 1)
{
$ppolls = 1;
}
else
{
$ppolls = 0;
}
if($canpostattachments[$usergroup['gid']] == 1)
{
$pattachments = 1;
}
else
{
$pattachments = 0;
}
if(!$preplies && !$pthreads)
{
$ppost = 0;
}
else
{
$ppost = 1;
}
$insertquery = array(
"fid" => intval($fid),
"gid" => intval($usergroup['gid']),
"canview" => intval($pview),
"canviewthreads" => intval($existing_permissions['canviewthreads']),
"candlattachments" => intval($existing_permissions['candlattachments']),
"canpostthreads" => intval($pthreads),
"canpostreplys" => intval($preplies),
"canpostattachments" => intval($pattachments),
"canratethreads" => intval($existing_permissions['canratethreads']),
"caneditposts" => intval($existing_permissions['caneditposts']),
"candeleteposts" => intval($existing_permissions['candeleteposts']),
"candeletethreads" => intval($existing_permissions['candeletethreads']),
"caneditattachments" => intval($existing_permissions['caneditattachments']),
"canpostpolls" => intval($ppolls),
"canvotepolls" => intval($existing_permissions['canvotepolls']),
"cansearch" => intval($existing_permissions['cansearch'])
);
$db->insert_query("forumpermissions", $insertquery);
}
}
$cache->update_forumpermissions();
}
More closely these lines:
$insertquery = array(
"fid" => intval($fid),
"gid" => intval($usergroup['gid']),
"canview" => intval($pview),
"canviewthreads" => intval($existing_permissions['canviewthreads']),
"candlattachments" => intval($existing_permissions['candlattachments']),
"canpostthreads" => intval($pthreads),
"canpostreplys" => intval($preplies),
"canpostattachments" => intval($pattachments),
"canratethreads" => intval($existing_permissions['canratethreads']),
"caneditposts" => intval($existing_permissions['caneditposts']),
"candeleteposts" => intval($existing_permissions['candeleteposts']),
"candeletethreads" => intval($existing_permissions['candeletethreads']),
"caneditattachments" => intval($existing_permissions['caneditattachments']),
"canpostpolls" => intval($ppolls),
"canvotepolls" => intval($existing_permissions['canvotepolls']),
"cansearch" => intval($existing_permissions['cansearch'])
);
The forum permission "Can View Threads?" is directly inherited from the parent. There is no correlation between "Can Post Threads?" or "Can View Threads?"
Seems like bogus to me.