Example #1
0
 public function actionLogin()
 {
     $this->preventTemplateRender();
     $user = new Model_UserModel();
     $isVarsSet = true;
     if (!isset($_REQUEST['username'])) {
         $user->setValidationError('username', 'Username not set');
         $isVarsSet = false;
     }
     if (!isset($_REQUEST['password'])) {
         $user->setValidationError('password', 'Password not set');
         $isVarsSet = false;
     }
     if (!$isVarsSet) {
         echo json_encode(array('status' => 'error', 'errors' => $user->getValidationErrors()));
         return;
     }
     $user->setUserName($_REQUEST['username']);
     $user->setPasswordBeforeSalt($_REQUEST['password']);
     $user->validateFields(array('user_name', 'password_before_salt'));
     if ($user->isValid()) {
         if (!$user->login()) {
             echo json_encode(array('status' => 'error', 'errors' => $user->getValidationErrors()));
         } else {
             $userSession = new Core_Auth_User();
             $userSession->setData($user->getData());
             $userStatus = new Model_UserStatusModel();
             $userStatus->load($user->getUserStatusIdFK());
             $userSession->isAuth(true);
             $userSession->setRole($userStatus->getStatusName());
             if (Application::getSessionType() == Application::SESSION_TYPE_DB) {
                 $storage = new Model_SessionStorageModel();
                 $storage->setUserId($user->getUserId());
                 $storage->setHash(session_id());
                 $storage->insert();
             }
             exit(session_id());
             echo json_encode(array('status' => 'ok'));
         }
     } else {
         echo json_encode(array('status' => 'error', 'errors' => $user->getValidationErrors()));
     }
 }