Index: trunk/core/units/general/cat_event_handler.php =================================================================== diff -u -N -r8415 -r8420 --- trunk/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 8415) +++ trunk/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 8420) @@ -1902,7 +1902,23 @@ } } + /** + * Deletes items & preserves clean env + * + * @param kEvent $event + */ + function OnDelete(&$event) + { + parent::OnDelete($event); + + if ($event->status == erSUCCESS && !$this->Application->IsAdmin()) { + $event->SetRedirectParam('pass', 'm'); + $event->SetRedirectParam('m_cat_id', 0); + } + } + + /** * Checks, that currently loaded item is allowed for viewing (non permission-based) * * @param kEvent $event Index: trunk/core/units/users/users_event_handler.php =================================================================== diff -u -N -r8413 -r8420 --- trunk/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 8413) +++ trunk/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 8420) @@ -250,7 +250,7 @@ $event->status = erFAIL; } - $event->SetRedirectParam('pass', 'm'); + $event->SetRedirectParam('pass', 'all'); } /** @@ -377,7 +377,7 @@ } $this->Application->resetCounters('UserSession'); - $event->SetRedirectParam('pass', 'm'); + $event->SetRedirectParam('pass', 'all'); } /** Index: trunk/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r8413 -r8420 --- trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 8413) +++ trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 8420) @@ -427,7 +427,7 @@ // when no permission to view item -> redirect to no pemrission template trigger_error('ItemLoad Permission Failed for prefix ['.$event->getPrefixSpecial().']', E_USER_WARNING); $next_template = $this->Application->IsAdmin() ? 'no_permission' : $this->Application->ConfigValue('NoPermissionTemplate'); - $this->Application->Redirect($next_template, Array('pass' => 'm')); + $this->Application->Redirect($next_template, Array('next_template' => $this->Application->GetVar('t'))); } } @@ -1028,15 +1028,14 @@ */ function OnDelete(&$event) { - $object =& $event->getObject( Array('skip_autoload' => true) ); - $object->ID = $this->getPassedID($event); - if ($object->Delete()) { - $event->status = erSUCCESS; + if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { + return; } - else { - $event->status = erFAIL; - $event->redirect = false; - } + + $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); + /* @var $temp kTempTablesHandler */ + + $temp->DeleteItems($event->Prefix, $event->Special, Array($this->getPassedID($event))); } /**