case 'category':
$artifact_sql['unique']= "atf.categoryid";
$artifact_sql['cond'] = "atf.categoryid = " . (int)$artifact_id;
- $artifact_sql['where'] = "OR a.artifact_type IS NULL AND (atf.authorid = " . (int)$authorid . " OR atf.authorid = 0)";
+ $artifact_sql['where'] = " ag.groupid = a.groupid
+ OR a.groupid = 0
+ OR (a.artifact_type IS NULL AND (atf.authorid = " . (int)$authorid . " OR atf.authorid = 0))";
$artifact_sql['table'] = 'category';
}
ON ( a.artifact_type = '" . serendipity_db_escape_string($artifact_type) . "'
AND a.artifact_id = " . (int)$artifact_id . "
AND a.artifact_mode = '" . serendipity_db_escape_string($artifact_mode) . "'
- AND (ag.groupid = a.groupid OR a.groupid = 0)
)
WHERE {$artifact_sql['cond']}
ON ( acl_acc.artifact_mode = 'read'
AND acl_acc.artifact_type = 'category'
AND acl_acc.artifact_id = c.categoryid
- AND acl_acc.groupid = " . $read_id_sql . "
)";
if (empty($cond['and'])) {
// When in Admin-Mode, apply readership permissions.
$cond['and'] .= " (
c.categoryid IS NULL
+ OR ( acl_acc.groupid = " . $read_id_sql . " )
OR ( acl_acc.artifact_id IS NULL
" . (isset($serendipity['GET']['adminModule']) &&
$serendipity['GET']['adminModule'] == 'entries' &&