/** * (non-PHPdoc) * @see Zend_Controller_Action::preDispatch() */ public function preDispatch() { $controllerName = $this->getRequest()->getControllerName(); $controllerAction = $this->getRequest()->getActionName(); $acl = Zend_Registry::get("Zend_Acl"); $role = UserMap::getRole(); if (!$this->getRequest()->isXmlHttpRequest()) { if (!$acl->isAllowed(UserMap::getRole(), $controllerName, $controllerAction) && $controllerAction != "logout") { if ($role == "guest") { header("Location:/"); } else { if ($role == "owner" || $role == "member") { header("Location:/owners/login"); } else { if ($role == "agent" || $role == "admin") { header("Location:/agents/login"); } } } exit; } } parent::preDispatch(); }
protected function _initAcl() { $acl = new Acl(); Zend_View_Helper_Navigation_HelperAbstract::setDefaultAcl($acl); Zend_View_Helper_Navigation_HelperAbstract::setDefaultRole(UserMap::getRole()); Zend_Registry::set('Zend_Acl', $acl); return $acl; }
public function processLoginAction() { $sessionAgent = new Zend_Session_Namespace("LeadsChat_Auth"); if (!$sessionAgent->agent_id && $this->_request->isXmlHttpRequest()) { if ($this->auth->authenticate()) { $this->view->result = array("result" => true, "message" => "Successful logged in", "level" => UserMap::getRole()); } else { $this->view->result = array("result" => false, "message" => "Invalid Username/Password"); } } else { if ($sessionAgent->agent_id) { $this->view->result = array("result" => true, "message" => "Already logged in"); } else { $this->view->result = array("result" => false, "message" => "Invalid request method"); } } $this->_helper->layout->setLayout("plain"); $this->_helper->viewRenderer("json"); }