protected function tryRedirection(Zend_Controller_Request_Abstract $request) { $controller = $request->getControllerName(); $module = $request->getModuleName(); $action = $request->getActionName(); $newRequest = clone $request; $group = $this->getUserGroupId(); $acl = new Application_Model_Access_AccessControlListMapper(); $newRoad = $acl->getRedirectRoad($group, $module, $controller, $action); if ($newRoad == NULL) { throw new Exception("noredirect"); } $newRequest->setModuleName(!empty($newRoad['module']) ? $newRoad['module'] : 'splash'); $newRequest->setControllerName(!empty($newRoad['controller']) ? $newRoad['controller'] : 'index'); $newRequest->setActionName(!empty($newRoad['action']) ? $newRoad['action'] : 'index'); if ($this->isAllowed($newRequest)) { return $newRequest; } else { throw new Exception("unallowed"); } }