/** * Process before maching the routes * * @return unknown */ protected function _beforeModuleMatch() { if (!$this->validateRoute()) { return false; } $session = App_Main::getAdminSession(); /* @var $session Core_Model_Session */ $request = App_Main::getRequest(); $user = $session->getUser(); if ($request->getActionName() == 'forgotpassword' || $request->getActionName() == 'logout') { $request->setDispatched(true); } else { if ($user) { $user->reload(); } if (!$user || !$user->getId()) { if ($request->getPost('login')) { $postLogin = $request->getPost('login'); $username = isset($postLogin['username']) ? $postLogin['username'] : ''; $password = isset($postLogin['password']) ? $postLogin['password'] : ''; $user = $session->login($username, $password, $request); $request->setPost('login', null); } if (!$request->getParam('forwarded')) { $request->setParam('forwarded', true)->setRouteName('admin')->setControllerName('index')->setActionName('login')->setDispatched(false); return true; } } } return true; }
/** * Login to the admin area */ public function loginAction() { if (App_Main::getAdminSession()->isLoggedIn()) { $this->_redirect('*'); return; } $loginData = $this->getRequest()->getParam('login'); $data = array(); if (is_array($loginData) && array_key_exists('username', $loginData)) { $data['username'] = $loginData['username']; } else { $data['username'] = null; } $this->_outTemplate('login', $data); }
/** * Get the admin session * * @return Admin_Model_Session */ public function _getSession() { return App_Main::getAdminSession(); }