Index: branches/5.0.x/core/units/admin/admin_events_handler.php =================================================================== diff -u -r12568 -r12569 --- branches/5.0.x/core/units/admin/admin_events_handler.php (.../admin_events_handler.php) (revision 12568) +++ branches/5.0.x/core/units/admin/admin_events_handler.php (.../admin_events_handler.php) (revision 12569) @@ -1,6 +1,6 @@ Application->CheckPermission($event->getSection() . '.edit') && in_array($event->Name, $system_events)) { + if (in_array($event->Name, $system_events)) { // events from "Tools -> System Tools" section are controlled via that section "edit" permission - return true; + $perm_value = $this->Application->CheckPermission($event->getSection() . '.edit'); } $tools_events = Array ( @@ -65,15 +67,18 @@ ); if (array_key_exists($event->Name, $tools_events)) { - return $this->Application->CheckPermission($tools_events[$event->Name]); + $perm_value = $this->Application->CheckPermission($tools_events[$event->Name]); } if ($event->Name == 'OnSaveMenuFrameWidth') { - if (!$this->Application->IsAdmin() || !$this->Application->LoggedIn()) { - return false; - } + $perm_value = $this->Application->IsAdmin() && $this->Application->LoggedIn(); + } - return true; + if (isset($perm_value)) { + $perm_helper =& $this->Application->recallObject('PermissionsHelper'); + /* @var $perm_helper kPermissionsHelper */ + + return $perm_helper->finalizePermissionCheck($event, $perm_value); } return parent::CheckPermission($event);