Index: branches/unlabeled/unlabeled-1.69.2/core/units/general/cat_event_handler.php =================================================================== diff -u -r7754 -r7922 --- branches/unlabeled/unlabeled-1.69.2/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 7754) +++ branches/unlabeled/unlabeled-1.69.2/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 7922) @@ -58,26 +58,31 @@ $selected_ids = implode(',', $this->getSelectedIDs($event, true)); } - $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); - $table_name = $this->Application->getUnitOption($event->Prefix, 'TableName'); - $sql = 'SELECT '.$id_field.', CreatedById, ci.CategoryId - FROM '.$table_name.' item_table - LEFT JOIN '.$this->Application->getUnitOption('ci', 'TableName').' ci ON ci.ItemResourceId = item_table.ResourceId - WHERE '.$id_field.' IN ('.$selected_ids.') AND (ci.PrimaryCat = 1)'; - $items = $this->Conn->Query($sql, $id_field); - $perm_value = true; - $perm_helper =& $this->Application->recallObject('PermissionsHelper'); - foreach ($items as $item_id => $item_data) { - if ($perm_helper->ModifyCheckPermission($item_data['CreatedById'], $item_data['CategoryId'], $event->Prefix) == 0) { - // one of items selected has no permission - $perm_value = false; - break; + if (strlen($selected_ids)) { + $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); + $table_name = $this->Application->getUnitOption($event->Prefix, 'TableName'); + $sql = 'SELECT '.$id_field.', CreatedById, ci.CategoryId + FROM '.$table_name.' item_table + LEFT JOIN '.$this->Application->getUnitOption('ci', 'TableName').' ci ON ci.ItemResourceId = item_table.ResourceId + WHERE '.$id_field.' IN ('.$selected_ids.') AND (ci.PrimaryCat = 1)'; + $items = $this->Conn->Query($sql, $id_field); + + $perm_helper =& $this->Application->recallObject('PermissionsHelper'); + foreach ($items as $item_id => $item_data) { + if ($perm_helper->ModifyCheckPermission($item_data['CreatedById'], $item_data['CategoryId'], $event->Prefix) == 0) { + // one of items selected has no permission + $perm_value = false; + break; + } } + + if (!$perm_value) { + $event->status = erPERM_FAIL; + } } - - if (!$perm_value) { - $event->status = erPERM_FAIL; + else { + trigger_error('IDs not passed to '.$event->getPrefixSpecial().':CheckPermission', E_USER_WARNING); } return $perm_value;