Index: trunk/core/units/general/cat_event_handler.php =================================================================== diff -u -N -r8407 -r8409 --- trunk/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 8407) +++ trunk/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 8409) @@ -1868,6 +1868,10 @@ function checkItemStatus(&$event) { $object =& $event->getObject(); + if (!$object->isLoaded()) { + return true; + } + $status = $object->GetDBField('Status'); $user_id = $this->Application->RecallVar('user_id'); Index: trunk/core/units/users/users_event_handler.php =================================================================== diff -u -N -r8405 -r8409 --- trunk/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 8405) +++ trunk/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 8409) @@ -1208,6 +1208,21 @@ } } + + /** + * Checks, that currently loaded item is allowed for viewing (non permission-based) + * + * @param kEvent $event + * @return bool + */ + function checkItemStatus(&$event) + { + $object =& $event->getObject(); + $status = $object->GetDBField('Status'); + + $virtual_users = Array (-1, -2); // root, Guest + return ($status == STATUS_ACTIVE) || in_array($object->GetID(), $virtual_users); + } } ?> \ No newline at end of file Index: trunk/core/units/general/helpers/permissions_helper.php =================================================================== diff -u -N -r8402 -r8409 --- trunk/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 8402) +++ trunk/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 8409) @@ -167,6 +167,7 @@ $id = $event_handler->getPassedID($event); } + $owner_id = -1; // owner is root if not detected if (!$id) { // item being created -> check by current (before editing started, saved in OnPreCreate event) category permissions $category_id = $this->Application->IsAdmin() ? $this->Application->RecallVar('m_cat_id') : $this->Application->GetVar('m_cat_id');