Example #1
0
 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);
         }
     }
 }