/** * 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) { $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; } }
/** * checks whether a user needs a login and is loggedin * otherwise redirect to login page * * @return void */ public function preDispatch(Zend_Controller_Request_Abstract $request) { // allways allow silent update (for easy cronjob) if ($request->getControllerName() == 'update' && $request->getActionName() == 'silent') { return; } // show login if ($request->getParam('login', false) !== false) { $request->setControllerName('index'); $request->setActionName('login'); return; } // logout? if ($request->getParam('logout', false) !== false) { Zend_Registry::get('session')->__unset('authenticated'); $request->setControllerName('index'); $request->setActionName('login'); return; } // disallow readonly mode if user has option public not set if (Zend_Registry::get('session')->authenticated === 'readonly' && Zend_Registry::get('session')->public != 1) { Zend_Registry::get('session')->authenticated = false; } // check whether user loggedin or public access allowed if (Zend_Registry::get('session')->authenticated !== true && Zend_Registry::get('session')->authenticated !== 'readonly') { // no login required? $users = new application_models_users(); if (!$users->getUsername()) { Zend_Registry::get('session')->authenticated = true; // public access allowed? start public mode } elseif (Zend_Registry::get('session')->public == 1) { Zend_Registry::get('session')->authenticated = 'readonly'; // unallowed access -> show login window } else { $request->setControllerName('index'); $request->setActionName('login'); return; } } // load default values 4 readonly mode if (Zend_Registry::get('session')->authenticated === 'readonly') { $priorityStart = Zend_Registry::get('session')->priorityStart; $priorityEnd = Zend_Registry::get('session')->priorityEnd; // reset session with default config from config.ini Zend_Registry::get('bootstrap')->resetSession(false); // set priority slider Zend_Registry::get('session')->currentPriorityStart = $priorityStart; Zend_Registry::get('session')->currentPriorityEnd = $priorityEnd; Zend_Registry::get('session')->priorityStart = $priorityStart; Zend_Registry::get('session')->priorityEnd = $priorityEnd; } // don't allow any changings in readonly mode if (Zend_Registry::get('session')->authenticated !== true) { if ($request->getControllerName() != 'error' && $request->getControllerName() != 'index' && $request->getControllerName() != 'patch' && !($request->getControllerName() == 'item' && $request->getActionName() == 'list') && !($request->getControllerName() == 'item' && $request->getActionName() == 'listmore') && !($request->getControllerName() == 'update' && $request->getActionName() == 'silent')) { die('access denied'); } } }
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); } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { if (PHP_SAPI == 'cli') { return; } $acl = new Zend_Acl(); // add the roles $acl->addRole(new Zend_Acl_Role('guest')); $acl->addRole(new Zend_Acl_Role('user'), 'guest'); $acl->addRole(new Zend_Acl_Role('admin'), 'user'); // add the resources $acl->addResource(new Zend_Acl_Resource('index')); $acl->addResource(new Zend_Acl_Resource('error')); $acl->addResource(new Zend_Acl_Resource('user')); $acl->addResource(new Zend_Acl_Resource('profile')); $acl->addResource(new Zend_Acl_Resource('post')); $acl->addResource(new Zend_Acl_Resource('*')); // set up the access rules $acl->allow(null, array('index', 'error')); // a guest can only sign up content and login $acl->allow('guest', 'user', array('login', 'register', 'unique', 'search')); // user $acl->allow('user', 'user', array('edit', 'logout')); $acl->allow('user', 'profile', array('edit', 'profile', 'getxml', 'viewxml', 'more')); $acl->allow('user', 'post', array('new', 'postxml', 'getposts', 'like', 'share', 'comment', 'home', 'edit', 'allcomment', 'notification', 'report')); $acl->allow('admin', null); // Fetch the current user $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $id = get_user_id(); $role = "user"; if ($id == 2) { $role = "admin"; } } else { $role = 'guest'; } // Authorization $controller = $request->controller; $action = $request->action; try { if (!$acl->isAllowed($role, $controller, $action)) { if ($role == 'guest') { $redirector = new Zend_Controller_Action_Helper_Redirector(); $redirector->gotoSimple('login', 'user'); } else { // User with role $role is not authorized for $controller/$action" $request->setControllerName('error'); $request->setActionName('notauthorized'); } } } catch (Exception $e) { $request->setControllerName('error'); $request->setActionName('notfound'); } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { // set up acl $acl = new Zend_Acl(); // add the roles $acl->addRole(new Zend_Acl_Role('guest')); $acl->addRole(new Zend_Acl_Role('consumer'), 'guest'); $acl->addRole(new Zend_Acl_Role('administrator'), 'consumer'); $acl->addRole(new Zend_Acl_Role('client')); // add the resources $acl->add(new Zend_Acl_Resource('index')); $acl->add(new Zend_Acl_Resource('error')); $acl->add(new Zend_Acl_Resource('admin')); $acl->add(new Zend_Acl_Resource('campaign')); $acl->add(new Zend_Acl_Resource('campaigninvitation')); $acl->add(new Zend_Acl_Resource('campaignparticipation')); $acl->add(new Zend_Acl_Resource('client')); $acl->add(new Zend_Acl_Resource('consumer')); $acl->add(new Zend_Acl_Resource('conversation')); $acl->add(new Zend_Acl_Resource('dashboard')); $acl->add(new Zend_Acl_Resource('forgetpassword')); $acl->add(new Zend_Acl_Resource('gift')); $acl->add(new Zend_Acl_Resource('history')); $acl->add(new Zend_Acl_Resource('home')); $acl->add(new Zend_Acl_Resource('login')); // set up the access rules $acl->allow(null, array('index', 'error')); // a guest can only login $acl->allow('guest', 'index', array('index', 'loginfailed')); $acl->allow('guest', 'login', array('login')); $acl->allow('guest', 'forgetpassword', array('index', 'sendsms', 'sendemail')); // consumer $acl->allow('consumer', 'gift', array('list', 'addtocart', 'cart', 'listorder')); // administrators can do anything $acl->allow('administrator', null); // fetch the current user $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $authNamespace = new Zend_Session_Namespace('Zend_Auth'); $role = $authNamespace->role; } else { $role = 'guest'; } $controller = $request->controller; $action = $request->action; if (!$acl->isAllowed($role, $controller, $action)) { if ($role == 'guest') { $request->setControllerName('index'); $request->setActionName('index'); } else { $request->setControllerName('error'); $request->setActionName('noauth'); } } }
protected function _forwardLogin(Zend_Controller_Request_Abstract $request) { $request->setModuleName('kwf_controller_action_user'); $request->setControllerName('login'); $request->setDispatched(false); if (substr($request->getActionName(), 0, 4) == 'json') { $request->setActionName('json-login'); } else { $params = array('location' => $request->getBaseUrl() . '/' . ltrim($request->getPathInfo(), '/')); $request->setParams($params); $request->setActionName('index'); } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { // set up acl $acl = new Zend_Acl(); // add the roles $acl->addRole(new Zend_Acl_Role('guest')); $acl->addRole(new Zend_Acl_Role('user'), 'guest'); $acl->addRole(new Zend_Acl_Role('administrator'), 'user'); // add the resources $acl->add(new Zend_Acl_Resource('index')); $acl->add(new Zend_Acl_Resource('error')); $acl->add(new Zend_Acl_Resource('page')); $acl->add(new Zend_Acl_Resource('menu')); $acl->add(new Zend_Acl_Resource('menuitem')); $acl->add(new Zend_Acl_Resource('user')); $acl->add(new Zend_Acl_Resource('search')); $acl->add(new Zend_Acl_Resource('feed')); // set up the access rules $acl->allow(null, array('index', 'error')); // a guest can only read content and login $acl->allow('guest', 'page', array('index', 'open')); $acl->allow('guest', 'menu', array('render')); $acl->allow('guest', 'user', array('login')); $acl->allow('guest', 'search', array('index', 'search')); $acl->allow('guest', 'feed'); // cms users can also work with content $acl->allow('user', 'page', array('list', 'create', 'edit', 'delete')); // administrators can do anything $acl->allow('administrator', null); // fetch the current user $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $identity = $auth->getIdentity(); $role = strtolower($identity->role); } else { $role = 'guest'; } $controller = $request->controller; $action = $request->action; if (!$acl->isAllowed($role, $controller, $action)) { if ($role == 'guest') { $request->setControllerName('user'); $request->setActionName('login'); } else { $request->setControllerName('error'); $request->setActionName('noauth'); } } }
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); }
/** * this function routes all requests that come in to the default module to the index controller / index action * * @param zend_controller_request $request */ public function preDispatch(Zend_Controller_Request_Abstract $request) { if ($request->module == 'public' && $request->controller != 'plugin') { $request->setControllerName('index'); $request->setActionName('index'); } }
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'); } } } }
/** * 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) { try { $getopt = new Zend_Console_Getopt(array('verbose|v' => 'Print verbose output', 'file|f=s' => 'File to upload')); $getopt->parse; $arguments = $getopt->getRemainingArgs(); } catch (Zend_Console_Getopt_Exception $e) { echo $e->getUsageMessage(); exit; } if ($arguments) { $command = array_shift($arguments); $action = array_shift($arguments); if (!preg_match('~\\W~', $command)) { $dispatcher->setControllerName($command); $dispatcher->setActionName($action); $dispatcher->setParams($arguments); if (isset($getopt->v)) { $dispatcher->setParam('verbose', true); } if (isset($getopt->f)) { $dispatcher->setParam('file', $getopt->f); } return $dispatcher; } echo "Invalid command.\n", exit; } echo "No command given.\n", exit; }
public function preDispatch(Zend_Controller_Request_Abstract $request) { $auth = Zend_Auth::getInstance(); $acl = Zend_Registry::get('acl'); //перевірка на ролі if ($auth->hasIdentity()) { $role = $auth->getIdentity()->role; } else { $role = 'guest'; } //якщо ролі не існує if (!$acl->hasRole($role)) { $role = 'guest'; } $controller = $request->controller; $action = $request->action; //якщо контролера не існує if (!$acl->has($controller)) { $controller = null; } //якщо юзер не має доступу if (!$acl->isAllowed($role, $controller, $action)) { $request->setControllerName($this->_controller['controller']); $request->setActionName($this->_controller['action']); } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { $dispatcher = Zend_Controller_Front::getInstance()->getDispatcher(); $controllerName = $request->getControllerName(); if (empty($controllerName)) { $controllerName = $dispatcher->getDefaultController(); } $className = $dispatcher->formatControllerName($controllerName); if ($className) { try { // if this fails, an exception will be thrown and // caught below, indicating that the class can’t // be loaded. Zend_Loader::loadClass($className, $dispatcher->getControllerDirectory()); $actionName = $request->getActionName(); if (empty($actionName)) { $actionName = $dispatcher->getDefaultAction(); } $methodName = $dispatcher->formatActionName($actionName); $class = new ReflectionClass($className); if ($class->hasMethod($methodName)) { // all is well - exit now return; } } catch (Zend_Exception $e) { // Couldn’t load the class. No need to act yet, // just catch the exception and fall out of the // if } } // we only arrive here if can’t find controller or action $request->setControllerName('noroute'); $request->setActionName('index'); $request->setDispatched(false); }
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 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 (!Zend_Auth::getInstance()->hasIdentity() && ($request->getControllerName() != 'index' && $request->getControllerName() != 'error')) { $request->setControllerName('index'); $request->setActionName('index'); } }
/** * * @param Zend_Controller_Request_Abstract $dispatcher * @return Zend_Controller_Request_Abstract */ public function route(Zend_Controller_Request_Abstract $dispatcher) { $getopt = new Zend_Console_Getopt(array()); $arguments = $getopt->getRemainingArgs(); $controller = null; $action = null; $params = array(); if ($arguments) { foreach ($arguments as $index => $command) { if (preg_match('/([a-z0-9]+)=([a-z0-9]+)/i', trim($command), $match)) { switch ($match[1]) { case 'controller': $controller = $match[2]; break; case 'action': $action = $match[2]; break; default: $params[$match[1]] = $match[2]; } } } $action = empty($action) ? 'index' : $action; $controller = empty($controller) ? 'index' : $controller; $dispatcher->setControllerName($controller); $dispatcher->setActionName($action); $dispatcher->setParams($params); return $dispatcher; } echo "Invalid command.\n"; echo "No command given.\n", exit; }
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 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) { // инициилизация объектов $auth = Zend_Auth::getInstance(); $acl = Zend_Registry::get('acl'); // если есть залогиненый пользователь if ($auth->hasIdentity()) { $role = $auth->getIdentity()->role; } else { $role = 'guest'; } // если нет вообще такой роли, то будет гость if (!$acl->hasRole($role)) { $role = 'guest'; } // наши ресурсы $controller = $request->controller; $action = $request->action; // если контроллер не существует тогда нулл if (!$acl->has($controller)) { $controller = null; } // если не существует перенаправляем на ошибку if (!$acl->isAllowed($role, $controller, $action)) { $request->setControllerName($this->_controller['controller']); $request->setActionName($this->_controller['action']); } }
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'); } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { $storage = new Zend_Auth_Storage_Session(); $data = $storage->read(); $role = $data['emprole']; if ($role == 1) { $role = 'admin'; } $request->getModuleName(); $request->getControllerName(); $request->getActionName(); $module = $request->getModuleName(); $resource = $request->getControllerName(); $privilege = $request->getActionName(); $this->id_param = $request->getParam('id'); $allowed = false; $acl = $this->_getAcl(); $moduleResource = "{$module}:{$resource}"; if ($resource == 'profile') { $role = 'viewer'; } if ($resource == 'services') { $role = 'services'; } if ($role != '') { if ($acl->has($moduleResource)) { $allowed = $acl->isAllowed($role, $moduleResource, $privilege); } if (!$allowed) { $request->setControllerName('error'); $request->setActionName('error'); } } }
public function preDispatch(Zend_Controller_Request_Abstract $request) { $auth = Zend_Auth::getInstance(); $acl = Zend_Registry::get('acl'); if ($auth->hasIdentity()) { $role = $auth->getIdentity()->role; } else { $role = 'guest'; } if (!$acl->hasRole($role)) { $role = 'guest'; } $controller = $request->controller; $action = $request->action; if ($controller == 'admin' && $action == 'index') { $this->_controller['controller'] = 'admin'; $this->_controller['action'] = 'login'; } if (!$acl->has($controller)) { $controller = null; } if (!$acl->isAllowed($role, $controller, $action)) { $request->setControllerName($this->_controller['controller']); $request->setActionName($this->_controller['action']); } }
/** * 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) { 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 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()) { $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); }