/** * Called before an action is dispatched by Zend_Controller_Dispatcher. * * This callback allows for proxy or filter behavior. By altering the * request and resetting its dispatched flag (via * {@link Zend_Controller_Request_Abstract::setDispatched() setDispatched(false)}), * the current action may be skipped. * * @param Zend_Controller_Request_Abstract $request * @return void */ public function preDispatch(Zend_Controller_Request_Abstract $request) { $oAuth = Zend_Auth::getInstance(); $oAcl = $this->getAcl(); // Default role $sRole = 'all'; if ($oAuth->hasIdentity()) { $oIdentity = $oAuth->getIdentity(); $sRole = isset($oIdentity->sRole) ? $oIdentity->sRole : 'identify'; } $sModule = $request->module; $sController = $request->controller; $sAction = $request->action; $sResource = $sController . ':' . $sAction; if ($oAcl->has($sResource)) { if (!$oAcl->isAllowed('all', $sResource)) { // Access is not allowed if (!$oAcl->isAllowed($sRole, $sResource)) { //$flashMessenger = new Zend_Controller_Action_Helper_FlashMessenger(); //$flashMessenger->addMessage('Acesso negado'); $request->setModuleName('default'); $request->setControllerName('index'); $request->setActionName('index'); } } } else { $flashMessenger = new Zend_Controller_Action_Helper_FlashMessenger(); $flashMessenger->addMessage('Acesso negado'); $request->setModuleName('default'); $request->setControllerName('index'); $request->setActionName('index'); } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { $table = $request->getParam('table'); $acl = $this->_getAcl(); $identity = Zend_Auth::getInstance()->getIdentity(); $role = 'Todos'; $resource = strtolower($request->getModuleName()); $controller = $request->getControllerName(); $privilege = $controller . self::RESOURCE_SEPARATOR . $request->getActionName(); if (isset($identity->role)) { $role = $identity->role; } if (!$acl->isAllowed($role, $resource, $privilege)) { if ($controller == 'scaffold' && $table) { $privilege = $table . self::RESOURCE_SEPARATOR . $request->getActionName(); if ($acl->isAllowed($role, $resource, $privilege)) { return true; } } if (isset($identity->role)) { $request->setModuleName('default')->setControllerName('error')->setActionName('access'); return false; } $request->setModuleName('auth')->setControllerName('index')->setActionName('index'); } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { $module = $request->getModuleName(); $controller = $request->getControllerName(); $action = $request->getActionName(); $resource = "{$module}:{$controller}"; $privilege = $action; // If not dispatchable, no need to check the ACL $dispatcher = Zend_Controller_Front::getInstance()->getDispatcher(); if (!$dispatcher->isDispatchable($this->getRequest())) { return; } // If the resource does not exist, revert to the root if (!$this->_acl->has($resource)) { $resource = 'root'; } if (!$this->_acl->isAllowed($this->_role, $resource, $action)) { // If access is not allowed and we are a guest, we forward to the auth controller if ($this->_role == 'guest' && Zend_Registry::isRegistered('uri')) { $request->setModuleName('admin')->setControllerName('auth')->setActionName('index')->setParams(array('target' => Zend_Registry::get('uri')))->setDispatched(false); } else { // Otherwise we forward to the error controller $request->setModuleName('public')->setControllerName('error')->setActionName('denied')->setParams(array('message' => "Access denied for {$this->_role} to resource {$resource} with privilege {$privilege}."))->setDispatched(false); } } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { $aNamespace = new Zend_Session_Namespace('userNs'); if ($aNamespace->perfil != "") { $role = $aNamespace->perfil; } else { $role = 'guest'; } $controller = strtolower($request->getControllerName()); $action = strtolower($request->getActionName()); $module = strtolower($request->getModuleName()); $resource = $module . ':' . str_replace('-', '', $controller) . '.' . $action; // $resource = $module.':'.$controller.'.'.$action; if (!$this->_acl->isAllowed($role, $resource, $action)) { if ($this->_auth->hasIdentity()) { $request->setModuleName('default'); $request->setControllerName('error'); $request->setActionName('nopermission'); } else { $this->_flashMessenger->addMessage(array('status' => 'error', 'message' => 'Favor logar novamente.')); $request->setModuleName('default'); $request->setControllerName('login'); $request->setActionName('index'); } } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { /** * Pegando o helper Redirector */ $this->_redirect = Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector'); /* * Instanciando as variáveis de sessão do zend_auth */ $authNamespace = new Zend_Session_Namespace('Zend_Auth'); /** * Copiando em variáves o modulo, controlle e action */ $module = strtolower($request->getModuleName()); $controller = strtolower($request->getControllerName()); $action = strtolower($request->getActionName()); /** * Se o usuário estiver autenticado */ if (Zend_Auth::getInstance()->hasIdentity()) { if (isset($authNamespace->timeout) && time() > $authNamespace->timeout) { /** * limpa a identidade do usuário que está um longo período sem acessar o controller */ $request->setModuleName('default'); $request->setControllerName('login'); $request->setActionName('logout'); $authNamespace->erro = 'Sua sessão expirou, favor logar novamente'; } else { /** * Usuário está ativo - atualizamos o time da sessão. */ $authNamespace->timeout = strtotime(self::$_ZEND_SESSION_NAMESPACE_EXPIRATION_SECONDS . " seconds"); /** * Renovando o timeout das variáves de sessão */ $namesspaces = Zend_Session::getIterator(); $namesspacesArrayCopy = $namesspaces->getArrayCopy(); foreach ($namesspacesArrayCopy as $namesspace) { $namesspace_each = new Zend_Session_Namespace($namesspace); //$namesspace_each->setExpirationSeconds(self::$_ZEND_SESSION_NAMESPACE_EXPIRATION_SECONDS); $namesspace_each->timeout = strtotime(self::$_ZEND_SESSION_NAMESPACE_EXPIRATION_SECONDS . " seconds"); $temp = $namesspace_each->timeout; } } } /** Se o usuário não possuir identidade ou a identidade foi removida devido ao timeout, * redirecionamos ele para a tela de login. */ if (!Zend_Auth::getInstance()->hasIdentity()) { if (!($module == 'default' && $controller == 'login' && $action == 'index') && !($module == 'default' && $controller == 'login' && $action == 'ajaxbanco')) { $request->setModuleName('default'); $request->setControllerName('login'); $request->setActionName('index'); $request->setParam('sessao', 'expirada'); } return; } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { try { $module = $request->getModuleName(); if ($module == 'admin') { $moduleList = new Zend_Session_Namespace('moduleList'); $userInfo = new Zend_Session_Namespace('userInfo'); $module = $moduleList->module; $allowed_module = $userInfo->module_list; //generating all resources $acl = new Zend_Acl(); //generating user permission $acl->addRole(new Zend_Acl_Role('admin')); $acl->addRole(new Zend_Acl_Role('anonymous')); $acl->add(new Zend_Acl_Resource('index')); $acl->add(new Zend_Acl_Resource('ajax')); $acl->allow('admin', 'index'); $acl->allow('admin', 'ajax'); if (!empty($module)) { foreach ($module as $value) { if (!$acl->has($value['controller'])) { $acl->add(new Zend_Acl_Resource($value['controller'])); } if (in_array($value['id'], $allowed_module)) { if ($value['action'] != null) { $acl->allow('admin', $value['controller'], $value['action']); } else { $acl->allow('admin', $value['controller']); } } } } //allowing anonymous user to get into the login page $acl->allow('anonymous', 'index', 'index'); $acl->allow('anonymous', 'index', 'login'); $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $role = 'admin'; } else { $role = 'anonymous'; } $controller = $request->controller; $action = $request->action; if (!$acl->isAllowed($role, $controller, $action)) { $request->setModuleName('admin'); $request->setControllerName('error'); $request->setActionName('acl'); $request->setParam('type', 1); } } } catch (Zend_Acl_Exception $e) { $request->setModuleName('admin'); $request->setControllerName('error'); $request->setActionName('acl'); $request->setParam('type', 2); } }
/** *(non-PHPdoc) * * @see Zend_Controller_Plugin_Abstract::preDispatch() */ public function preDispatch(Zend_Controller_Request_Abstract $request) { /** * Recupera a identidade do usuario logado * * @var Array */ $role = $this->auth->getIdentity(); /** * Recursos que se deseja acesso * * @var String */ $resource = $this->getRequest()->getModuleName(); /** * Ação permitida dentro de um resource * * @var String */ $action = $this->getRequest()->getModuleName() != 'admin' && $this->getRequest()->getModuleName() != 'sac' ? null : $this->getRequest()->getControllerName(); // Verificação condicional para os controllers e actions de upload if (!($request->getActionName() == 'upload' || $request->getControllerName() == 'upload')) { // Verifica se ha lixo na autenticacao if (!is_array($role)) { // Parametros $params = array(); // Destroi qualquer instancia de autenticacao $this->auth->clearIdentity(); // Altera a rota de destino $request->setModuleName('admin')->setControllerName('login')->setActionName('index'); return; } // Verifica se o recurso existe e se o usuario logado tem acesso if (!$this->acl->has($resource) || !$this->acl->isAllowed($role['usuario'], $resource, $action)) { // Parametros $params = array(); // Redireciona para o controller de login if ($role['usuario'] != 'visitante') { $params['erro'] = 'Você não possui permissão de acesso a este recurso.'; $request->setModuleName('admin')->setControllerName('index')->setActionName('index')->setParams($params); } else { if ($this->getRequest()->getModuleName() == "sac") { $request->setModuleName('sac')->setControllerName('login')->setActionName('index')->setParams($params); } else { $request->setModuleName('admin')->setControllerName('login')->setActionName('index')->setParams($params); } } return; } } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { if (!in_array($request->getModuleName(), array('qg', 'painel'))) { return; } $controller = ""; $action = ""; $module = ""; if (!$this->_auth->hasIdentity()) { $controller = $this->_notLoggedRoute['controller']; $action = $this->_notLoggedRoute['action']; $module = $request->getModuleName(); } else { if (!$this->_isAuthorized($request->getModuleName(), $request->getControllerName(), $request->getActionName())) { $controller = $this->_forbiddenRoute['controller']; $action = $this->_forbiddenRoute['action']; $module = $request->getModuleName(); } else { $controller = $request->getControllerName(); $action = $request->getActionName(); $module = $request->getModuleName(); } } $request->setControllerName($controller); $request->setActionName($action); $request->setModuleName($module); }
public function preDispatch(Zend_Controller_Request_Abstract $request) { if ($this->_auth->hasIdentity()) { $role = $this->_auth->role; } else { $role = 'guest'; } $controller = $request->getControllerName(); $action = $request->getActionName(); $module = $request->getModuleName(); if (!$this->_acl->has($module)) { $module = null; } if (!$this->acl->isAllowed($role, $module)) { if (!$this->auth->hasIdentity()) { $controller = $this->_noauth['controller']; $action = $this->_noauth['action']; } else { $controller = $this->_noacl['controller']; $action = $this->_noacl['action']; } } $request->setModuleName($module); $request->setControllerName($controller); $request->setActionName($action); }
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) { $auth = Zend_Auth::getInstance(); if (!$auth->hasIdentity()) { $request->setModuleName('User')->setControllerName('auth')->setActionName('login')->setDispatched(true); } }
public function route(Zend_Controller_Request_Abstract $dispatcher) { $dispatcher->setModuleName('worker'); $dispatcher->setControllerName('index'); $dispatcher->setActionName('index'); return $dispatcher; }
public function preDispatch(Zend_Controller_Request_Abstract $request) { if ($this->_auth->hasIdentity()) { $cnf = Zend_Registry::get('cnf'); $db = Zend_Db::factory($cnf->db); $select = $db->query("\n SELECT\n ut.User_type AS UserType\n FROM\n admin_users_types ut\n WHERE\n ID=" . $this->_auth->getIdentity()->TypeID); $tp = $select->fetchAll(); $role = $tp[0]['UserType']; } else { $role = "guest"; } $module = $request->module; $controller = $request->controller; $action = $request->action; $resource = $request->module; //print "<pre>";var_dump($request); if ($this->_acl->has($resource)) { $resource = null; } if (!$this->_acl->isAllowed($role, $module, $controller, $action)) { list($module, $controller, $action) = !$this->_auth->hasIdentity() ? array_values($this->_noAuth) : array_values($this->_noAcl); } $request->setModuleName($module); $request->setControllerName($controller); $request->setActionName($action); }
/** * @param Zend_Controller_Request_Abstract $request * @return Zend_Controller_Request_Abstract */ public function route(Zend_Controller_Request_Abstract $request) { $this->_currentRequest = $request; $getOpt = new Zend_Console_Getopt(array()); $arguments = $getOpt->getRemainingArgs(); $module = 'index'; $controller = 'index'; $action = 'index'; if ($arguments) { $module = array_shift($arguments); if ($arguments) { $controller = array_shift($arguments); if ($arguments) { $action = array_shift($arguments); $patternValidAction = '~^\\w+[\\-\\w\\d]+$~'; if (false == preg_match($patternValidAction, $action)) { echo "Invalid action {$action}.\n", exit; } if ($arguments) { foreach ($arguments as $arg) { $parameter = explode('=', $arg, 2); if (false == isset($parameter[1])) { $parameter[1] = true; } $request->setParam($parameter[0], $parameter[1]); unset($parameter); } } } } } $request->setModuleName($module)->setControllerName($controller)->setActionName($action); return $request; }
/** * 在消息派发之前,验证权限。 * * @see Zend_Controller_Request_Abstract::preDispatch() * @param Zend_Controller_Request_Abstract $request * @return void */ public function preDispatch(Zend_Controller_Request_Abstract $request) { if ($this->_request->getActionName() != Zend_Controller_Front::getInstance()->getDefaultAction() && $this->_acl->has($this->_resource()) && !$this->_acl->isAllowed($this->_role(), $this->_resource(), $this->_privileges())) { // 如果没有权限则跳转到相关的提示页面 $request->setModuleName('index')->setControllerName('index')->setActionName('deny'); } }
private function _changeDispatch(Zend_Controller_Request_Abstract &$request, Zend_Controller_Response_Abstract $response) { $module = $request->getParam($request->getModuleKey()); $controller = $request->getParam($request->getControllerKey()); $action = $request->getParam($request->getActionKey()); $submodule = ''; $subcontroller = ''; $subaction = ''; if ('admin' != $module) { $submodule = $module; $subcontroller = $controller ? $controller : 'index'; $subaction = $action ? $action : 'index'; $controller = 'index'; $action = 'subroute'; $module = 'default'; } else { $submodule = $controller; $subcontroller = $action ? $action : 'index'; //долно быть настроено в route //$subaction = ( $action ) ? $action : 'index'; $controller = 'index'; $action = 'subroute'; } $request->setParam($request->getModuleKey(), $module); $request->setModuleName($module); $request->setParam($request->getControllerKey(), $controller); $request->setControllerName($controller); $request->setParam($request->getActionKey(), $action); $request->setActionName($action); $request->setParam('submodule', $submodule); $request->setParam('subcontroller', $subcontroller); $request->setParam('subaction', $subaction); }
public function preDispatch(Zend_Controller_Request_Abstract $request) { if ($request->isXmlHttpRequest()) { return; } $module = $request->getModuleName(); $controller = $request->getControllerName(); $action = $request->getActionName(); $isAllowed = false; if (Zend_Auth::getInstance()->hasIdentity()) { $user = Zend_Auth::getInstance()->getIdentity(); require_once APPLICATION_PATH . '/modules/core/services/Acl.php'; $acl = Core_Services_Acl::getInstance(); if (in_array(strtolower($module . '_' . $controller . '_' . $action), array('default_index_index', 'identity_account_logout'))) { $isAllowed = true; } else { $isAllowed = $acl->isUserOrRoleAllowed($user, $module, $controller, $action); } } if (!$isAllowed) { if (Zend_Auth::getInstance()->hasIdentity()) { $forwardAction = 'deny'; } else { $forwardAction = 'login'; } $sReturn = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; $sReturn = base64_encode($sReturn); $request->setModuleName('core')->setControllerName('Auth')->setActionName($forwardAction)->setParam('returnUrl', $sReturn)->setDispatched(true); } }
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) { $authNamespace = new Zend_Session_Namespace('Gslab_Session'); $controller = $request->getParam('controller'); $action = $request->getParam('action'); $module = $request->getParam('module'); $baseUrl = Zend_Controller_Front::getInstance()->getBaseUrl(); if (!$this->_auth->hasIdentity() && $module == 'default' && $controller != 'login') { $redirect = '/'; if ($action != 'index') { $redirect = '/' . $action . $redirect; } if ($controller != 'index' || $action != 'index') { $redirect = '/' . $controller . $redirect; } if ($module != 'default') { $redirect = '/' . $module . $redirect; } $redirect = urlencode($redirect); //$this->getResponse()->setRedirect($baseUrl . '/admin/login?redirect=' . $redirect, 302); $request->setModuleName('default'); $request->setControllerName('login'); $request->setActionName('index'); } }
/** * ACL Access Check in preDispatch method * * @param Zend_Controller_Request_Abstract $request */ public function preDispatch(Zend_Controller_Request_Abstract $request) { if (!$this->_auth->hasIdentity()) { $request->setModuleName('admin'); $request->setControllerName('auth'); $request->setActionName('login'); return; } // What is user(role) loged in $role = $this->_auth->getIdentity()->role_id; // What is the current Resource $resource_table = new Admin_Model_Resources(); $resource_name = $request->getModuleName() . ':' . $request->getControllerName(); $resource = $resource_table->getByName(strtolower($resource_name)); $resource_id = isset($resource->id) ? $resource->id : null; // Get current privilage ( == action ) $action = strtolower($request->getActionName()); if (!$this->_acl->hasRole($role)) { throw new Exception("Role not found in Database.", 404); } elseif (!$this->_acl->hasResource($resource_id)) { throw new Exception("Resource not found in Database.", 404); } elseif (!$this->_acl->isAllowed($role, $resource_id, $action)) { throw new Exception("You dont have permission for this page.", 404); } }
public function route(Zend_Controller_Request_Abstract $dispatcher) { $getopt = new Zend_Console_Getopt(array()); $arguments = $getopt->getRemainingArgs(); $controller = ""; $action = ""; $params = array(); if ($arguments) { foreach ($arguments as $index => $command) { $details = explode("=", $command); if ($details[0] == "controller") { $controller = $details[1]; } else { if ($details[0] == "action") { $action = $details[1]; } else { $params[$details[0]] = $details[1]; } } } if ($action == "" || $controller == "") { die("\n\t\t\t\t\t\tMissing Controller and Action Arguments\n\t\t\t\t\t\t==\n\t\t\t\t\t\tYou should have:\n\t\t\t\t\t\tphp script.php controller=[controllername] action=[action] token=[token]\n\t\t\t\t\t\t"); } $dispatcher->setModuleName('cronjob'); $dispatcher->setControllerName($controller); $dispatcher->setActionName($action); $dispatcher->setParams($params); return $dispatcher; } echo "Invalid command.\n", exit; echo "No command given.\n", exit; }
public function preDispatch(Zend_Controller_Request_Abstract $request) { if ('company' == $request->getControllerName()) { $tsn = $request->tsn ? $request->tsn : $_COOKIE['tsn']; if ($tsn) { $token = Token::create($tsn); $token->update_sync_time(); } else { $token = Token::create_abstract('123'); } if ($token->is_logined() == true) { if ($token->is_expire()) { $token->destroy(); include_once LIB_PATH . '/view_helper/BuildUrl.php'; $url_builder = new Zend_View_Helper_BuildUrl(); $referer = SearchFilter::slashes($url_builder->buildUrl($request->getActionName(), $request->getControllerName(), $request->getModuleName())); $login_url = $url_builder->buildUrl('login', 'auth', 'index', array('redirect' => $referer)); $redirector = new Zend_Controller_Action_Helper_Redirector(); $redirector->gotoUrl($login_url); return; } $token->register(); } else { if ('auth' != $request->getActionName()) { $token->destroy(); $request->setModuleName('index'); $request->setControllerName('auth'); $request->setActionName('login'); } } } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { if ($this->_auth->hasIdentity()) { switch ($this->_auth->getIdentity()->ma_quyen) { case '1': $role = 'admin'; break; case '2': $role = 'mod'; break; case '3': $role = 'teacher'; break; case '4': $role = 'member'; break; default: $role = 'guest'; break; } } else { $role = 'guest'; } $controller = $request->getControllerName(); $action = $request->getActionName(); $module = $request->getModuleName(); $resource = $module . ':' . $controller; if ($module == 'admin') { if (!$this->_acl->isAllowed($role, $resource, $action)) { $this->_auth->clearIdentity(); $request->setModuleName('admin')->setControllerName('login')->setActionName('index'); } } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { if ($this->_auth->hasIdentity()) { $role = $this->_auth->getIdentity()->getUser()->role; } else { $role = 'guest'; } $controller = $request->controller; $action = $request->action; $module = $request->module; $resource = $controller; if (!$this->_acl->has($resource)) { $resource = null; } if (!$this->_acl->isAllowed($role, $resource, $action)) { if (!$this->_auth->hasIdentity()) { $module = self::NO_AUTH_MODULE; $controller = self::NO_AUTH_CONTROLLER; $action = self::NO_AUTH_ACTION; } else { $module = self::NO_ACL_MODULE; $controller = self::NO_ACL_CONTROLLER; $action = self::NO_ACL_ACTION; } } $request->setModuleName($module); $request->setControllerName($controller); $request->setActionName($action); }
public function preDispatch(Zend_Controller_Request_Abstract $request) { // Begin authorisation $auth = Zend_Auth::getInstance(); $role = 'guest'; if ($auth->hasIdentity()) { $user = $auth->getIdentity(); if (is_object($user)) { if (!isset($user->role)) { $user->role = 'user'; } $role = $user->role; } } $controller = $request->getControllerName(); $action = $request->getActionName(); $module = $request->getModuleName(); $resource = $module; $privellege = str_replace('-', '', $controller) . '_' . str_replace('-', '', $action); $cache = $this->getCache(); $acl = null; if (!($acl = $cache->load('acl_' . $role))) { $acl = Isfa_Acl::getInstance($role); $cache->save($acl, 'acl_' . $role); } if (!$acl->has($resource)) { $resource = null; } if (!$acl->isAllowed($role, $resource, $privellege)) { $request->setModuleName('default')->setControllerName('index')->setActionName('index')->setDispatched(false); } }
/** * routeShutdown * 在 路由器 完成请求的路由后被调用 * @param Zend_Controller_Request_Abstract $request * @return void */ public function routeShutdown(Zend_Controller_Request_Abstract $request) { /** * 检测请求的Content-type类型 */ $pathinfo = $request->getPathInfo(); if (!empty($pathinfo)) { if ($extension = pathinfo($pathinfo, PATHINFO_EXTENSION)) { if (preg_match('/^[-a-z0-9]+$/i', $extension)) { $request->setParam(static::KEY_EXT, strtolower($extension)); } } } /** * 检测是否支持json响应 */ if ($request->getParam(static::KEY_EXT) == '') { $accept = $request->getServer('HTTP_ACCEPT'); if (!empty($accept)) { if (strpos($accept, 'json') !== false) { $request->setParam(static::KEY_EXT, 'json'); } } } /** * 格式化请求目标信息,不允许[-a-zA-Z0-9]以外的字符 */ $pattern = '/[^-a-zA-Z0-9].*/'; $request->setModuleName(preg_replace($pattern, '', $request->getModuleName())); $request->setControllerName(preg_replace($pattern, '', $request->getControllerName())); $request->setActionName(preg_replace($pattern, '', $request->getActionName())); }
/** * */ public function preDispatch(Zend_Controller_Request_Abstract $request) { $module = $request->getModuleName(); $controller = $request->getControllerName(); $action = $request->getActionName(); $front = Zend_Controller_Front::getInstance(); $acl = $front->getParam('bootstrap')->getResource('acl'); $role = $front->getParam('bootstrap')->getPluginResource('acl')->getRole(); $allow = false; do { if (!$acl->hasRole($role)) { break; } if ($acl->isAllowed($role)) { $allow = true; break; } $mca = new Streamwide_Web_Acl_Resource_Mca($module, $controller, $action); $all = new Streamwide_Web_Acl_Resource_Mca('*', '*', '*'); if ($acl->has($mca)) { $allow = $acl->isAllowed($role, $mca); } else { //the resource is not defined in acl,check against its *.*.* definition $allow = $acl->isAllowed($role, $all); } } while (0); if (!$allow) { $request->setModuleName($this->getErrorHandlerModule())->setControllerName($this->getErrorHandlerController())->setActionName($this->getErrorHandlerAction()); } }
/** * Predispatch method to authenticate user * * @param Zend_Controller_Request_Abstract $request */ public function preDispatch(Zend_Controller_Request_Abstract $request) { //user only to login for access to admin functions /*if ('admin' != $request->getModuleName()) { return; } if (App_Model_Users::isLoggedIn() && App_Model_Users::isAdmin()) { //user is logged in and allowed to access admin functions return; }*/ if ('admin' == $request->getModuleName()) { return; } /** * User not logged in or not allowed to access admin ... redirect to login. * Note: if user is logged in but not authorised, we redirect to login * to allow user to login as a different user with the right permissions. */ Zend_Session::destroy(true); if ($request->getActionName() != 'logincheck') { $request->setModuleName('default')->setControllerName('login')->setActionName('index'); //->setDispatched(FALSE); header("Location:http://" . $_SERVER['HTTP_HOST'] . "/login/index"); } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { $controller = ""; $action = ""; $module = ""; /* if($request->getControllerName() == "index" ){ $controller = $request->getControllerName(); $action = $request->getActionName(); $module = $request->getModuleName(); } else if ( !$this->_auth->hasIdentity() ) { }*/ if (!$this->_isAuthorized($request->getControllerName(), $request->getActionName())) { if (!$this->_auth->hasIdentity()) { if (!in_array($request->getControllerName(), $this->_moRedirect) && !Application_Model_Redirect::hasRequestUri()) { Application_Model_Redirect::saveRequestUri("/" . $request->getControllerName() . "/" . $request->getActionName()); } $controller = $this->_notLoggedRoute['controller']; $action = $this->_notLoggedRoute['action']; $module = $this->_notLoggedRoute['module']; } else { $controller = $this->_forbiddenRoute['controller']; $action = $this->_forbiddenRoute['action']; $module = $this->_forbiddenRoute['module']; } } else { $controller = $request->getControllerName(); $action = $request->getActionName(); $module = $request->getModuleName(); } $request->setControllerName($controller); $request->setActionName($action); $request->setModuleName($module); }
public function preDispatch(Zend_Controller_Request_Abstract $request) { if ($request->getModuleName() === "admin" && !Zend_Auth::getInstance()->hasIdentity()) { $request->setModuleName("admin")->setControllerName("auth")->setActionName("login"); $request->setDispatched(); } }
public function routeShutdown(Zend_Controller_Request_Abstract $request) { if( !Zend_Auth::getInstance()->hasIdentity() ){ $request->setModuleName( 'User' ) ->setControllerName( 'index' ) ->setActionName( 'connect' ) ->setDispatched( true ); } }
/** * @see Zend_Controller_Router_Interface::route */ public function route(Zend_Controller_Request_Abstract $request) { if ($request->getModuleName() == '') { $request->setModuleName('cli'); } if ($request->getControllerName() == '') { $request->setControllerName('index'); } return true; }