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;
 }
Example #2
0
 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");
     }
 }