Index: trunk/core/kernel/event_handler.php =================================================================== diff -u -r4625 -r4627 --- trunk/core/kernel/event_handler.php (.../event_handler.php) (revision 4625) +++ trunk/core/kernel/event_handler.php (.../event_handler.php) (revision 4627) @@ -61,21 +61,7 @@ */ function mapPermissions() { - $this->permMapping = Array( - 'OnCreate' => Array('self' => 'add', 'subitem' => 'add|edit'), - 'OnDelete' => Array('self' => 'delete', 'subitem' => 'edit|add'), - - 'OnEdit' => Array('self' => 'add|edit'), - 'OnPreCreate' => Array('self' => 'add'), - - 'OnPreSaveAndGoToTab' => Array('self' => 'add|edit'), - - // theese event do not harm, but just in case check them too :) - 'OnCancelEdit' => Array('self' => 'add|edit'), - 'OnCancel' => Array('self' => 'add|edit', 'subitem' => 'add|edit'), - - 'OnSetSorting' => Array('self' => 'view', 'subitem' => 'view'), - ); + } function getPrefixSpecial() @@ -322,23 +308,14 @@ */ function CheckPermission(&$event) { - if ($this->Application->GetVar('u_id') == -1) { - // "root" has all permissions - return true; - } - + $section = $event->getSection(); $main_prefix = $this->Application->GetTopmostPrefix($event->Prefix); - $section = $this->Application->getUnitOption($main_prefix, 'Section'); - - if (!$section) { - trigger_error('Permission section not specified for prefix '.$main_prefix.'', E_USER_ERROR); - } $pefix_type = ($main_prefix == $event->Prefix) ? 'self' : 'subitem'; $perm_mapping = getArrayValue($this->permMapping, $event->Name); if (!$perm_mapping[$pefix_type]) { - trigger_error('Permission mappings not defined for event '.$main_prefix.':'.$event->Name.'', E_USER_ERROR); + trigger_error('Permission mappings not defined for event '.$main_prefix.' <- '.$event->Prefix.':'.$event->Name.'', E_USER_ERROR); } $perm_status = false; @@ -370,6 +347,7 @@ $event->SetRedirectParam('section', $section); $event->SetRedirectParam('main_prefix', $main_prefix); $event->SetRedirectParam('event_name', $event->Name); + $event->status = erPERM_FAIL; } return $perm_status; }