public function loginAction() { $request = $this->getRequest(); $this->setLayout('login'); $return = $request->getParam('return'); $this->view->return = $return; if ($request->isPost()) { $username = $request->getPost('username'); $password = $request->getPost('password'); $this->view->username = $username; $this->view->password = $password; $user = Modules_Core_Services_User::auth($username, $password, true); if (null == $user) { $this->view->error = true; $this->view->message = $this->view->TRANSLATOR->translator('auth_login_error'); } elseif ($user['status'] == 'inactive') { $this->view->error = true; $this->view->message = $this->view->TRANSLATOR->translator('auth_login_inactive'); } elseif ($user['status'] == 'active') { $user['last_login'] = date('Y-m-d H:i:s'); Modules_Core_Services_User::setLastLogin($user); $configs = Gio_Core_Config_Xml::getConfig('session'); $json = new Services_JSON(); $sessionId = session_id(); $session = array('session_id' => $sessionId, 'created_date' => strtotime(date('Y-m-d H:i:s')), 'last_update' => strtotime(date('Y-m-d H:i:s')), 'lifetime' => isset($configs->lifetime) ? $configs->lifetime : 3600, 'inactive_time' => isset($configs->inactive_time) ? $configs->inactive_time : 120, 'data' => $json->encodeUnsafe($user), 'status' => 'active'); Gio_Core_Session::add($session); $return = $request->getPost('return'); $redirect = $return ? base64_decode(rawurldecode($return)) : $this->view->url('core_dashboard_index'); $this->redirect($redirect); } } }