AND categoryid <> ". (int)$serendipity['GET']['cid'], true);
if ( $sql ) {
echo '<div class="serendipityAdminMsgError">'. sprintf(CATEGORY_ALREADY_EXIST, htmlspecialchars($name)) .'</div>';
- } else if (!serendipity_ACLCheck($serendipity['authorid'], $serendipity['GET']['cid'], 'category', 'write')) {
+ } else if (!serendipity_checkPermission('adminCategoriesMaintainOthers') && !serendipity_ACLCheck($serendipity['authorid'], $serendipity['GET']['cid'], 'category', 'write')) {
echo '<div class="serendipityAdminMsgError">'. PERM_DENIED .'</div>';
} else {
/* Check to make sure parent is not a child of self */
global $serendipity;
$artifact_sql = array();
+
+ // TODO: If more artifact_types are available, the JOIN needs to be edited so that the first AND portion is not required, and the join is fully made on that conditiion.
switch($artifact_type) {
default:
case 'category':
LEFT OUTER JOIN {$serendipity['dbPrefix']}authorgroups AS ag
ON ag.authorid = ". (int)$authorid . "
LEFT OUTER JOIN {$serendipity['dbPrefix']}access AS a
- ON (ag.groupid = a.groupid OR a.groupid = 0)
+ ON (a.artifact_id = " . (int)$artifact_id . " AND (ag.groupid = a.groupid OR a.groupid = 0) )
WHERE {$artifact_sql['cond']}
AND ((
- a.artifact_id = " . (int)$artifact_id . "
- AND a.artifact_type = '" . serendipity_db_escape_string($artifact_type) . "'
+ a.artifact_type = '" . serendipity_db_escape_string($artifact_type) . "'
AND a.artifact_mode = '" . serendipity_db_escape_string($artifact_mode) . "'
)
{$artifact_sql['where']}