public function refusedAction() { $request = $this->getRequest(); $params = $request->getParams(); $groupsMapper = new Application_Model_Access_AccessGroupMapper(); $actualGroup = new Application_Model_Access_AccessGroup(); $aclMapper = new Application_Model_Access_AccessControlListMapper(); $session = new Zend_Session_Namespace(); $groupsMapper->find($session->currentUser['group']['id'], $actualGroup); if (!$actualGroup->getName() or !$actualGroup->getId()) { $actualGroup = new Application_Model_Access_AccessGroup(); $actualGroup->setId($groupsMapper->getDefaultUserGroupId())->setName("all"); } $actualAcl = $aclMapper->findRow($actualGroup->getName(), $params['rq_module'], $params['rq_controller'], $params['rq_action']); if ($actualAcl == false) { $actualAcl = new Application_Model_Access_AccessControlList(0, "admin", $params['rq_module'] . "_" . $params['rq_controller'] . "_" . $params['rq_action'], 0, 0, NULL); } $this->view->actualAcl = $actualAcl; $this->view->actualGroup = $actualGroup; }
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"); } }