Index: trunk/core/kernel/startup.php =================================================================== diff -u -N -r4758 -r4762 --- trunk/core/kernel/startup.php (.../startup.php) (revision 4758) +++ trunk/core/kernel/startup.php (.../startup.php) (revision 4762) @@ -69,14 +69,15 @@ $debugger_start = getmicrotime(); include_once(KERNEL_PATH.'/utility/debugger.php'); $debugger_end = getmicrotime(); - - $debugger->profileStart('inc_globals', KERNEL_PATH.'/globals.php', $globals_start); - $debugger->profileFinish('inc_globals', KERNEL_PATH.'/globals.php', $globals_end); - $debugger->profilerAddTotal('includes', 'inc_globals'); - - $debugger->profileStart('inc_debugger', KERNEL_PATH.'/utility/debugger.php', $debugger_start); - $debugger->profileFinish('inc_debugger', KERNEL_PATH.'/utility/debugger.php', $debugger_end); - $debugger->profilerAddTotal('includes', 'inc_debugger'); + if (isset($debugger)) { + $debugger->profileStart('inc_globals', KERNEL_PATH.'/globals.php', $globals_start); + $debugger->profileFinish('inc_globals', KERNEL_PATH.'/globals.php', $globals_end); + $debugger->profilerAddTotal('includes', 'inc_globals'); + + $debugger->profileStart('inc_debugger', KERNEL_PATH.'/utility/debugger.php', $debugger_start); + $debugger->profileFinish('inc_debugger', KERNEL_PATH.'/utility/debugger.php', $debugger_end); + $debugger->profilerAddTotal('includes', 'inc_debugger'); + } } } @@ -101,7 +102,7 @@ k4_include_once($a_file); } - if (defined('DEBUG_MODE') && DEBUG_MODE) { + if (defined('DEBUG_MODE') && DEBUG_MODE && isset($debugger)) { $debugger->AttachToApplication(); } Index: trunk/kernel/units/general/helpers/permissions_helper.php =================================================================== diff -u -N -r4708 -r4762 --- trunk/kernel/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 4708) +++ trunk/kernel/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 4762) @@ -110,10 +110,13 @@ } if (!$perm_status) { - // for debugging purposes - $event->SetRedirectParam('section', $section); - $event->SetRedirectParam('main_prefix', $top_prefix); - $event->SetRedirectParam('event_name', $event->Name); + if ($this->Application->isDebugMode()) { + // for debugging purposes + $event->SetRedirectParam('section', $section); + $event->SetRedirectParam('main_prefix', $top_prefix); + $event->SetRedirectParam('event_name', $event->Name); + $event->SetRedirectParam('next_template', $this->Application->GetVar('t')); + } $event->status = erPERM_FAIL; } return $perm_status; @@ -197,11 +200,14 @@ } if (!$perm_status) { - // for debugging purposes $event->SetRedirectParam('index_file', 'index.php'); // because called from browse.php - $event->SetRedirectParam('section', $event->getSection()); - $event->SetRedirectParam('main_prefix', $top_prefix); - $event->SetRedirectParam('event_name', $event->Name); + if ($this->Application->isDebugMode()) { + // for debugging purposes + $event->SetRedirectParam('section', $event->getSection()); + $event->SetRedirectParam('main_prefix', $top_prefix); + $event->SetRedirectParam('event_name', $event->Name); + $event->SetRedirectParam('next_template', $this->Application->GetVar('t')); + } $event->status = erPERM_FAIL; } return $perm_status; Index: trunk/core/units/custom_data/custom_data_config.php =================================================================== diff -u -N -r4758 -r4762 --- trunk/core/units/custom_data/custom_data_config.php (.../custom_data_config.php) (revision 4758) +++ trunk/core/units/custom_data/custom_data_config.php (.../custom_data_config.php) (revision 4762) @@ -47,7 +47,7 @@ Array( 'Mode' => hAFTER, 'Conditional' => false, - 'HookToPrefix' => 'm', + 'HookToPrefix' => '', //self 'HookToSpecial' => '*', 'HookToEvent' => Array('OnAfterConfigRead'), 'DoPrefix' => '', Index: trunk/core/kernel/utility/formatters/formatters_config.php =================================================================== diff -u -N -r4758 -r4762 --- trunk/core/kernel/utility/formatters/formatters_config.php (.../formatters_config.php) (revision 4758) +++ trunk/core/kernel/utility/formatters/formatters_config.php (.../formatters_config.php) (revision 4762) @@ -9,7 +9,7 @@ Array('pseudo'=>'kDateFormatter','class'=>'kDateFormatter','file'=>'date_formatter.php','build_event'=>'','require_classes'=>'kFormatter'), Array('pseudo'=>'kUploadFormatter','class'=>'kUploadFormatter','file'=>'upload_formatter.php','build_event'=>'','require_classes'=>'kFormatter'), Array('pseudo'=>'kPictureFormatter','class'=>'kPictureFormatter','file'=>'upload_formatter.php','build_event'=>'','require_classes'=>'kUploadFormatter'), - Array('pseudo'=>'kMultiLanguage','class'=>'kPictureFormatter','file'=>'multilang_formatter.php','build_event'=>'','require_classes'=>'kFormatter'), + Array('pseudo'=>'kMultiLanguage','class'=>'kMultiLanguage','file'=>'multilang_formatter.php','build_event'=>'','require_classes'=>'kFormatter'), Array('pseudo'=>'kPasswordFormatter','class'=>'kPasswordFormatter','file'=>'password_formatter.php','build_event'=>'','require_classes'=>'kFormatter'), Array('pseudo'=>'kCCDateFormatter','class'=>'kCCDateFormatter','file'=>'ccdate_formatter.php','build_event'=>'','require_classes'=>'kFormatter'), Array('pseudo'=>'kUnitFormatter','class'=>'kUnitFormatter','file'=>'unit_formatter.php','build_event'=>'','require_classes'=>'kFormatter'), Index: trunk/kernel/units/custom_data/custom_data_config.php =================================================================== diff -u -N -r4758 -r4762 --- trunk/kernel/units/custom_data/custom_data_config.php (.../custom_data_config.php) (revision 4758) +++ trunk/kernel/units/custom_data/custom_data_config.php (.../custom_data_config.php) (revision 4762) @@ -47,7 +47,7 @@ Array( 'Mode' => hAFTER, 'Conditional' => false, - 'HookToPrefix' => 'm', + 'HookToPrefix' => '', //self 'HookToSpecial' => '*', 'HookToEvent' => Array('OnAfterConfigRead'), 'DoPrefix' => '', Index: trunk/core/kernel/event_handler.php =================================================================== diff -u -N -r4689 -r4762 --- trunk/core/kernel/event_handler.php (.../event_handler.php) (revision 4689) +++ trunk/core/kernel/event_handler.php (.../event_handler.php) (revision 4762) @@ -312,6 +312,16 @@ return $perm_helper->CheckPermission($event, $this->permMapping); } + /** + * Occurs, when config was parsed, allows to change config data dynamically + * + * @param kEvent $event + */ + function OnAfterConfigRead(&$event) + { + // readonly, for hooking only! + } + } Index: trunk/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r4758 -r4762 --- trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 4758) +++ trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 4762) @@ -1690,7 +1690,7 @@ } } } - + /** * Dynamically fills customdata config * Index: trunk/core/kernel/utility/unit_config_reader.php =================================================================== diff -u -N -r4758 -r4762 --- trunk/core/kernel/utility/unit_config_reader.php (.../unit_config_reader.php) (revision 4758) +++ trunk/core/kernel/utility/unit_config_reader.php (.../unit_config_reader.php) (revision 4762) @@ -150,9 +150,8 @@ { foreach ($this->configData as $prefix => $config) { $this->parseConfig($prefix); + $this->Application->HandleEvent( new kEvent($prefix.':OnAfterConfigRead') ); } - - $this->Application->HandleEvent( new kEvent('m:OnAfterConfigRead') ); } function CacheParsedData() @@ -481,6 +480,7 @@ } $file = $this->prefixFiles[$prefix]; $this->loadConfigFile($file); + $this->Application->HandleEvent( new kEvent($prefix.':OnAfterConfigRead') ); } /** Index: trunk/core/kernel/utility/factory.php =================================================================== diff -u -N -r4758 -r4762 --- trunk/core/kernel/utility/factory.php (.../factory.php) (revision 4758) +++ trunk/core/kernel/utility/factory.php (.../factory.php) (revision 4762) @@ -86,7 +86,7 @@ if (!isset($this->realClasses[$pseudo_class])) { - if( defined('DEBUG_MODE') && DEBUG_MODE ) $this->Application->Debugger->appendTrace(); + if( $this->Application->isDebugMode() ) $this->Application->Debugger->appendTrace(); $error_level = $this->Application->isInstalled() ? E_USER_ERROR : E_USER_WARNING; trigger_error('RealClass not defined for pseudo_class '.$pseudo_class.'', $error_level); $false = false; Index: trunk/core/units/general/main_event_handler.php =================================================================== diff -u -N -r4141 -r4762 --- trunk/core/units/general/main_event_handler.php (.../main_event_handler.php) (revision 4141) +++ trunk/core/units/general/main_event_handler.php (.../main_event_handler.php) (revision 4762) @@ -119,16 +119,6 @@ $event->setEventParam('url_params', $url_params); $event->setEventParam('env_string', strtolower($ret) ); } - - /** - * Occurs, when all configs were read, allows to change config data dynamically - * - * @param kEvent $event - */ - function OnAfterConfigRead(&$event) - { - // readonly, for hooking only! - } } ?> \ No newline at end of file Index: trunk/kernel/admin_templates/no_permission.tpl =================================================================== diff -u -N -r4630 -r4762 --- trunk/kernel/admin_templates/no_permission.tpl (.../no_permission.tpl) (revision 4630) +++ trunk/kernel/admin_templates/no_permission.tpl (.../no_permission.tpl) (revision 4762) @@ -35,8 +35,19 @@ "> -
- no permission for section for event : + +
No Permission

+ + + Permissions Checked:
+ Template:
+ Redirect From Tag: yes
+ + Section:
+ Event: :
+ Redirect From Tag: no
+

+
Index: trunk/core/kernel/processors/main_processor.php =================================================================== diff -u -N -r4758 -r4762 --- trunk/core/kernel/processors/main_processor.php (.../main_processor.php) (revision 4758) +++ trunk/core/kernel/processors/main_processor.php (.../main_processor.php) (revision 4762) @@ -691,33 +691,35 @@ $t = $next_t; } - if($permission_groups = getArrayValue($params, 'permissions')) - { + if ($permission_groups = getArrayValue($params, 'permissions')) { $permission_groups = explode('|', $permission_groups); $group_has_permission = false; - foreach($permission_groups as $permission_group) - { + foreach ($permission_groups as $permission_group) { $permissions = explode(',', $permission_group); $has_permission = true; - foreach($permissions as $permission) - { - $has_permission = $has_permission && $this->Application->CheckPermission($permission, 0); + foreach ($permissions as $permission) { + $has_permission = $has_permission && $this->Application->CheckPermission($permission, isset($params['system']) && $params['system'] ? 1 : 0); } $group_has_permission = $group_has_permission || $has_permission; - if($group_has_permission) - { + if ($group_has_permission) { return; } } - if( !$this->Application->LoggedIn() ) - { + if (!$this->Application->LoggedIn()) { $this->Application->Redirect( $params['login_template'], Array('next_template'=>$t) ); } - else - { - $this->Application->Redirect( $params['no_permissions_template'] ); + else { + if (isset($params['no_permissions_template'])) { + $t = $params['no_permissions_template']; + } + else { + $t = $this->Application->IsAdmin() ? 'no_permission' : $this->Application->ConfigValue('NoPermissionTemplate'); + } + + $redirect_params = $this->Application->isDebugMode() ? Array('from_template' => 1, 'perms' => $params['permissions'], 'next_template' => $this->Application->GetVar('t')) : Array(); + $this->Application->Redirect($t, $redirect_params); } } Index: trunk/kernel/units/general/main_event_handler.php =================================================================== diff -u -N -r4141 -r4762 --- trunk/kernel/units/general/main_event_handler.php (.../main_event_handler.php) (revision 4141) +++ trunk/kernel/units/general/main_event_handler.php (.../main_event_handler.php) (revision 4762) @@ -119,16 +119,6 @@ $event->setEventParam('url_params', $url_params); $event->setEventParam('env_string', strtolower($ret) ); } - - /** - * Occurs, when all configs were read, allows to change config data dynamically - * - * @param kEvent $event - */ - function OnAfterConfigRead(&$event) - { - // readonly, for hooking only! - } } ?> \ No newline at end of file Index: trunk/core/units/general/helpers/permissions_helper.php =================================================================== diff -u -N -r4708 -r4762 --- trunk/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 4708) +++ trunk/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 4762) @@ -110,10 +110,13 @@ } if (!$perm_status) { - // for debugging purposes - $event->SetRedirectParam('section', $section); - $event->SetRedirectParam('main_prefix', $top_prefix); - $event->SetRedirectParam('event_name', $event->Name); + if ($this->Application->isDebugMode()) { + // for debugging purposes + $event->SetRedirectParam('section', $section); + $event->SetRedirectParam('main_prefix', $top_prefix); + $event->SetRedirectParam('event_name', $event->Name); + $event->SetRedirectParam('next_template', $this->Application->GetVar('t')); + } $event->status = erPERM_FAIL; } return $perm_status; @@ -197,11 +200,14 @@ } if (!$perm_status) { - // for debugging purposes $event->SetRedirectParam('index_file', 'index.php'); // because called from browse.php - $event->SetRedirectParam('section', $event->getSection()); - $event->SetRedirectParam('main_prefix', $top_prefix); - $event->SetRedirectParam('event_name', $event->Name); + if ($this->Application->isDebugMode()) { + // for debugging purposes + $event->SetRedirectParam('section', $event->getSection()); + $event->SetRedirectParam('main_prefix', $top_prefix); + $event->SetRedirectParam('event_name', $event->Name); + $event->SetRedirectParam('next_template', $this->Application->GetVar('t')); + } $event->status = erPERM_FAIL; } return $perm_status;