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;
}