Example #1
0
 public function authenticate()
 {
     $this->_user = User::model()->resetScope()->findByAttributes(array('email' => $this->username));
     if (!$this->_user) {
         $this->errorCode = self::ERROR_USERNAME_INVALID;
         return false;
     }
     if (!$this->_user->checkPassword($this->password)) {
         $this->errorCode = self::ERROR_PASSWORD_INVALID;
         return false;
     }
     $this->errorCode = self::ERROR_NONE;
     return true;
 }
Example #2
0
 public function actionEdit()
 {
     $categories = Category::getCategoryList();
     if (!$categories) {
         $categories = array();
     }
     $email = User::isLogged();
     $user = User::getUserByEmail($email);
     $name = $user['name'];
     $password = '';
     $result = '';
     if (isset($_POST['submit'])) {
         $name = FunctionLibrary::clearStr($_POST['name']);
         $password = FunctionLibrary::clearStr($_POST['password']);
         $errors = array();
         if (!User::checkName($name)) {
             $errors[] = 'Имя должно быть больше 1 символа.';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Пароль должен быть больше 5 символов.';
         }
         if (empty($errors)) {
             $result = User::edit($user['id'], $name, $password);
         }
     }
     require_once ROOT . '/views/cabinet/edit.php';
     return true;
 }
Example #3
0
 public function displayMain()
 {
     global $smarty, $link, $cookie;
     if (!$cookie->logged) {
         Tools::redirect($link->getPage('LoginView'));
     }
     $user = new User((int) $cookie->id_user);
     if (Tools::isSubmit('joinCommit')) {
         if (User::checkPassword($user->id, Tools::encrypt($_POST['old_passwd']))) {
             if (Tools::getRequest('confirmation') == Tools::getRequest('passwd')) {
                 if (!empty($_POST['passwd']) && Validate::isPasswd($_POST['passwd'])) {
                     $user->copyFromPost();
                     if ($user->update()) {
                         $cookie->passwd = $user->passwd;
                         $cookie->write();
                         $smarty->assign('success', 'Your personal information has been successfully updated.');
                     }
                 } else {
                     $user->_errors[] = 'Password is invalid.';
                 }
             } else {
                 $user->_errors[] = 'Password and confirmation do not match.';
             }
         } else {
             $user->_errors[] = 'Your password is incorrect.';
         }
     }
     $smarty->assign(array('errors' => $user->_errors, 'DISPLAY_LEFT' => Module::hookBlock(array('myaccount')), 'user' => $user));
     return $smarty->fetch('my-user.tpl');
 }
Example #4
0
 public function actionEdit()
 {
     //primim identificatorul utilizatorului din sesiune
     $userId = User::checkLogged();
     //primim informatii despre utilizator din baza de date
     $user = User::getUserById($userId);
     $name = $user['name'];
     $password = $user['password'];
     $result = false;
     $errors = false;
     if (isset($_POST['submit'])) {
         $name = $_POST['name'];
         $password = $_POST['password'];
         if (!User::checkName($name)) {
             $errors[] = 'Numele nu trebue sa fie mai scurt de doua simboluri';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'parola nu trebue sa fie mai scurta de 6 simboluri';
         }
         if ($errors == false) {
             $result = User::edit($userId, $name, $password);
         }
     }
     require_once ROOT . '/views/cabinet/edit.php';
     return true;
 }
Example #5
0
 /**
  * Logt einen Benutzer mit gegebenen Daten ein
  * @param $username string Der Benutzername des zu einloggenden Users
  * @param $password string Das dazugehoerige Passwort
  * @param $permanent bool Soll der User eingeloggt bleiben, bis er sich ausloggt (NYI)
  * @return bool War das einloggen erfolgreich? Wenn nicht, liefert {@link getLoginError()} den dazugehoerigen Fehler
  */
 public function login($username, $password, $permanent = false)
 {
     $success = false;
     $user = null;
     try {
         $user = new User($username);
     } catch (UserExistiertNichtException $e) {
         $this->loginErrno = 1;
         $this->loginError = 'Der Benutzername existiert nicht.';
         $success = $this->login = false;
     }
     if ($user !== null) {
         if (!$user->isActive()) {
             $this->loginErrno = 2;
             $this->loginError = 'Der Benutzer ist nicht aktiviert. Bitte wenden Sie sich an einen Administrator.';
             $success = $this->login = false;
         } else {
             if (!$user->checkPassword($password)) {
                 $this->loginErrno = 3;
                 $this->loginError = 'Das angegebene Passwort ist falsch.';
                 $success = $this->login = false;
             } else {
                 $success = $this->login = true;
                 $this->userName = $user->getName();
                 $this->loginErrno = 0;
                 $this->loginError = '';
                 if ($permanent) {
                     $this->createPermanentLogin($user->getId());
                 }
             }
         }
     }
     return $success;
 }
Example #6
0
 public function actionLogin()
 {
     $email = '';
     $password = '';
     if (isset($_POST['submit'])) {
         $email = $_POST['email'];
         $password = $_POST['password'];
         $errors = false;
         //Валидация
         if (!User::checkEmail($email)) {
             $errors[] = 'Неправельный email';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Пароль не должен быть короче 6-ти символов';
         }
         //Проверка пользователя
         $userId = User::checkUserData($email, $password);
         if ($userId == false) {
             $errors[] = 'Неправильные данные для входа на сайт';
         } else {
             User::auth($userId);
             //redirect
             header("Location: /");
         }
     }
     require_once ROOT . '/views/user/login.php';
 }
 /**
  * Action для страницы "Редактирование данных пользователя"
  */
 public function actionEdit()
 {
     // Получаем идентификатор пользователя из сессии
     $userId = User::checkLogged();
     // Получаем ифнормацию о пользователе из БД
     $user = User::getUserById($userId);
     // Заполняем переменные для полей формы
     $name = $user['name'];
     $password = $user['password'];
     // Флаг результата
     $result = false;
     // Обработка формы
     if (isset($_POST['submit'])) {
         // Если форма отправлена
         // Получаем данные из формы редактирования
         $name = $_POST['name'];
         $password = $_POST['password'];
         // Флаг ошибок
         $errors = false;
         // Валидируем значения
         if (!User::checkName($name)) {
             $errors[] = 'Имя д.б. не короче 2-х символов';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Пароль короче 6 символов';
         }
         if ($errors === false) {
             // Если ошибок нет, сохраняем изменения профиля
             $result = User::edit($userId, $name, $password);
         }
     }
     // Подключаем вид
     require_once ROOT . '/views/cabinet/edit.php';
     return true;
 }
 public function actionCreate()
 {
     $name = '';
     $email = '';
     $password = '';
     if (isset($_POST['submit'])) {
         $name = FunctionLibrary::clearStr($_POST['name']);
         $email = FunctionLibrary::clearStr($_POST['email']);
         $password = FunctionLibrary::clearStr($_POST['password']);
         $errors = array();
         if (!User::checkName($name)) {
             $errors[] = 'Имя должно быть больше 1 символа.';
         }
         if (!User::checkEmail($email)) {
             $errors[] = 'Невалидный email.';
         }
         if (User::checkEmailExists($email)) {
             $errors[] = 'Такой email уже существует.';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Пароль должен быть больше 5 символов.';
         }
         if (empty($errors)) {
             $result = User::registerAdmin($name, $email, $password);
             if (!$result) {
                 $message = 'Произошла ошибка при регистрации админа!';
             } else {
                 FunctionLibrary::redirectTo('/admin/user');
             }
         }
     }
     require_once ROOT . '/views/admin-user/create.php';
     return true;
 }
 public function actionLogin()
 {
     $email = '';
     $password = '';
     if (isset($_POST['submit'])) {
         $email = $_POST['email'];
         $password = $_POST['password'];
         $errors = false;
         //Валидация полей
         if (User::checkEmail($email)) {
             $errors[] = 'Ошибка, Не верный email';
         }
         if (User::checkPassword($password)) {
             $errors[] = 'Ошибка, пароль должен состоять минимум из 6 символов';
         }
         //Проверяем существует ли пользователь
         $userId = User::checkUserData($email, $password);
         if ($userId == false) {
             //Если данные не верные - показываем ошибку
             $errors[] = 'Ошибка входа на сайт Введенные данные неправильные!';
         } else {
             //Если данные правильные, запоминаем пользователя (сессия)
             User::auth($userId);
             //Перенаправляем пользователя в закрытую часть (cabinet)
             header("Location: /cabinet/");
         }
     }
     require_once ROOT . '/views/user/login.php';
     return true;
 }
Example #10
0
 /**
  * Action для страницы "Вход на сайт"
  */
 public function actionLogin()
 {
     $email = false;
     $password = false;
     if (isset($_POST['submit'])) {
         $email = $_POST['email'];
         $password = $_POST['password'];
         $errors = false;
         if (!User::checkEmail($email)) {
             $errors[] = 'Неправильный email';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Пароль не должен быть короче 6-ти символов';
         }
         $userId = User::checkUserData($email, $password);
         if ($userId == false) {
             $errors[] = 'Неправильные данные для входа на сайт';
         } else {
             // Если данные правильные, запоминаем пользователя (сессия)
             User::auth($userId);
             header("Location: /cabinet");
         }
     }
     require_once ROOT . '/views/user/login.php';
     return true;
 }
 public function actionLogin()
 {
     $email = '';
     $password = '';
     if (isset($_POST['submit'])) {
         $email = $_POST['email'];
         $password = $_POST['password'];
         $error = false;
         if (!User::checkEmail($email)) {
             $errors[] = 'Неправльный email';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Пароль не должен быть короче 6 символов';
         }
         $userId = User::checkUserData($email, $password);
         if ($userId == false) {
             $errors[] = 'Неправльные данные для входа на сайт';
         } else {
             User::auth($userId);
             header('Location: /cabinet/');
         }
     }
     require_once ROOT . '/views/user/login.php';
     return true;
 }
 public function actionEdit()
 {
     //Получаем идентификатор пользователя из сессиив
     $userId = User::checkLogged();
     //Получаем инфомацию о пользователе из БД
     $user = User::getUserById($userId);
     $name = $user['name'];
     $password = $user['password'];
     $result = false;
     if (isset($_POST['submit'])) {
         $name = $_POST['name'];
         $password = $_POST['password'];
         $errors[] = false;
         if (!User::checkName($name)) {
             $errors[] = 'Имя должно состоять минимум из 2 символов';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Пароль должен состоять минимум из 6 символов';
         }
         if ($errors == false) {
             $result = User::edit($userId, $name, $password);
         }
     }
     require_once ROOT . '/views/cabinet/edit.php';
     return true;
 }
Example #13
0
 public function displayMain()
 {
     global $smarty, $link, $cookie;
     $errors = false;
     if (!$cookie->logged || !User::checkPassword($cookie->id_user, $cookie->passwd)) {
         Tools::redirect($link->getPage('userView'));
     }
     $referer = Tools::Q('referer') ? $link->getPage(Tools::Q('referer')) : $link->getPage('MyAddressesView');
     if ($id_address = Tools::Q('id')) {
         $address = new Address((int) $id_address);
         if (Tools::isSubmit('saveAddress')) {
             $address->copyFromPost();
             if ($address->update()) {
                 Tools::redirect($referer);
             } else {
                 $errors = $address->_errors;
             }
         }
         $smarty->assign('address', $address);
     } elseif (Tools::isSubmit('saveAddress')) {
         $address = new Address();
         $address->copyFromPost();
         $address->id_user = $cookie->id_user;
         if ($address->add()) {
             Tools::redirect($referer);
         } else {
             $errors = $address->_errors;
         }
     }
     $countrys = Country::loadData(1, 1000, 'position', 'asc', array('active' => true));
     $smarty->assign(array('referer' => Tools::Q('referer'), 'countrys' => $countrys, 'errors' => $errors));
     return $smarty->fetch('address.tpl');
 }
 public function actionLogin()
 {
     $userData = array('name' => '', 'email' => '', 'password' => '');
     if (isset($_POST['submit'])) {
         $user = new User('', $_POST['email'], $_POST['password']);
         $errors = false;
         if (!$user->checkEmail()) {
             $errors[] = 'Неправильный email';
         }
         if (!$user->checkPassword()) {
             $errors[] = 'Пароль не должен быть короче 6-ти символов';
         }
         if (empty($errors)) {
             $userAuth = $user->checkUserData();
             if ($userAuth) {
                 $user->auth();
                 header("Location: /cabinet/");
             } else {
                 $errors[] = 'Неправельные данные для авторизации';
             }
         }
         $userData = $user->getUserData();
     }
     require_once ROOT . '/views/user/login.php';
     return true;
 }
Example #15
0
 public function actionRegister()
 {
     $name = '';
     $email = '';
     $password = '';
     $result = '';
     if (isset($_POST['submit'])) {
         $name = FunctionLibrary::clearStr($_POST['name']);
         $email = FunctionLibrary::clearStr($_POST['email']);
         $password = FunctionLibrary::clearStr($_POST['password']);
         $errors = array();
         if (!User::checkName($name)) {
             $errors[] = 'Имя должно быть больше 1 символа.';
         }
         if (!User::checkEmail($email)) {
             $errors[] = 'Невалидный email.';
         }
         if (User::checkEmailExists($email)) {
             $errors[] = 'Такой email уже существует.';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Пароль должен быть больше 5 символов.';
         }
         if (empty($errors)) {
             $result = User::register($name, $email, $password);
         }
     }
     require_once ROOT . '/views/user/register.php';
     return true;
 }
Example #16
0
 public function actionLogin()
 {
     $email = '';
     $password = '';
     if (isset($_POST['submit'])) {
         $email = $_POST['email'];
         $password = $_POST['password'];
         $errors = false;
         //validarea cimpurilor
         if (!User::checkEmail($email)) {
             $errors[] = 'Nu este corect emailul';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Parola nu trebue sa fie mai scurta de 6 simboluri';
         }
         //verificam daca exista utilizatorul
         $userId = User::checkUserData($email, $password);
         if ($userId == false) {
             //Daca datele nu sunt corecte afisham eroare
             $errors[] = 'Datele is incorecte , pentru a intra pe site';
         } else {
             //daca datele is corecte , memoram utilizatorul in sesiune
             User::auth($userId);
             //directionam utilizatorul in partea inchisa a cabinetului
             header("Location: /cabinet/");
         }
     }
     require_once ROOT . '/views/user/login.php';
     return true;
 }
Example #17
0
 public static function login($username, $password)
 {
     if (User::checkPassword($username, $password)) {
         $user = User::get($username);
         $user->login = new Doctrine_Expression('NOW()');
         $user->save();
         $_SESSION['glbs_u'] = $user->username;
         $_SESSION['glbs_i'] = $user->userid;
         return $user;
     } else {
         return false;
     }
 }
Example #18
0
 public function displayMain()
 {
     global $smarty, $cookie, $link;
     $cart = new Cart((int) $cookie->id_cart);
     if (isset($_POST['msg']) && pSQL($_POST['msg'], true) != $cart->msg) {
         $cart->msg = substr(pSQL($_POST['msg'], true), 0, 500);
         $cart->update();
     }
     if (!$cookie->logged || !User::checkPassword($cookie->id_user, $cookie->passwd)) {
         Tools::redirect($link->getPage('LoginView', false, array('step' => 2)));
     } else {
         $this->LoginedAction();
     }
     $smarty->assign(array('id_default_carrier' => Configuration::get('TM_DEFAULT_CARRIER_ID')));
     return $smarty->fetch('checkout.tpl');
 }
 private function checkCurrentPassword()
 {
     if (!isset($_POST['curPwd'])) {
         $this->errno = 5;
         $this->error = 'Bitte geben Sie Ihr aktuelles Passwort zur Bestätigung ein.';
         return false;
     }
     $username = $_SESSION['session']->getUserName();
     $user = new User($username);
     if (!$user->checkPassword($_POST['curPwd'])) {
         $this->errno = 6;
         $this->error = 'Das eingegebene aktuelle Passwort ist nicht korrekt.';
         return false;
     }
     return true;
 }
function _check_login()
{
    //TODO
    //$user = new User(getdbh());
    //$user->checkPassword();
    //redirect fie catre main page fie inapoi catre login
    //$_POST contine datele din form trimise de user
    $user = new User(getdbh());
    $user_details = $user->checkPassword($_POST['email'], $_POST['password']);
    if (count($user_details) == 1) {
        //TODO adauga in sesiune user id, si user type ($user_details['ID'])
        $_SESSION['uid'] = $user_details[0]['ID'];
        $_SESSION['type'] = $user_details[0]['TIP'];
        redirect('main/index');
    } else {
        redirect('main/login');
    }
}
Example #21
0
 public function actionRegister()
 {
     $name = '';
     $email = '';
     $password = '';
     $result = false;
     $errors = [];
     if (isset($_POST['submit'])) {
         $name = filter_var($_POST['name'], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
         $email = filter_var($_POST['email'], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
         $password = filter_var($_POST['password'], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
         $errors = false;
         /*if (USER::checkName($name)) {
               echo $name;
           } else {
               $errors[] = 'Имя не должно быть короче 2-х символов';
           }*/
         //sra poxaren tak@ grum enq aveli karch
         if (!User::checkName($name)) {
             $errors[] = 'Имя не должно быть короче 2-х символов';
         }
         if (!User::checkEmail($email)) {
             $errors[] = 'Неправильный email';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Пароль не должен быть короче 6-ти символов';
         }
         if (User::checkEmailExists($email)) {
             $errors[] = 'Такой email уже используется';
         }
         if (!$errors) {
             $result = User::register($name, $email, $password);
         }
     }
     $view = new View();
     $view->result = $result;
     $view->name = $name;
     $view->email = $email;
     $view->password = $password;
     $view->errors = $errors;
     $view->display('user/register.php');
     //       require_once(ROOT . '/views/user/register.php');
     return true;
 }
Example #22
0
 /**
  * Action для страницы "Вход на сайт"
  */
 public function actionLogin()
 {
     // Переменные для формы
     $email = false;
     $password = false;
     // Обработка формы
     if (isset($_POST['submit_log'])) {
         // Если форма отправлена
         // Получаем данные из формы
         $email = $_POST['email'];
         $password = $_POST['password'];
         // Флаг ошибок
         $errors = false;
         // Валидация полей
         if (!User::checkEmail($email)) {
             $errors[] = 'Неправильный email';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Пароль не должен быть короче 6-ти символов';
         }
         // Проверяем существует ли пользователь
         $userId = User::checkUserData($email, $password);
         if ($userId == false) {
             // Если данные неправильные - показываем ошибку
             $errors[] = 'Неправильные данные для входа на сайт';
         } else {
             // Если данные правильные, запоминаем пользователя (сессия)
             User::auth($userId);
             $user = User::getUserById($userId);
             // Если роль текущего пользователя "admin", пускаем его в админпанель
             if ($user['role'] == 'admin') {
                 require_once ROOT . '/views/admin/index.php';
             } else {
                 // Перенаправляем пользователя в закрытую часть - кабинет
                 header("Location: /cabinet");
             }
         }
     }
     //        // Подключаем вид
     require_once ROOT . '/views/user/login.php';
     return true;
 }
 public function actionEdit()
 {
     $userId = User::checkLogged();
     $result = false;
     if (isset($_POST['submit'])) {
         $user = new User($_POST['name'], '', $_POST['password']);
         $errors = false;
         if (!$user->checkName()) {
             $errors[] = 'Имя не должно быть короче 2-х символов';
         }
         if (!$user->checkPassword()) {
             $errors[] = 'Пароль не должен быть короче 6-ти символов';
         }
         if ($errors == false) {
             $result = $user->edit($userId);
         }
     }
     require_once ROOT . '/views/cabinet/edit.php';
     return true;
 }
 /**
  * Authenticates a user
  * @return int the error code (ERROR_NONE if authentication succeeded)
  */
 public function authenticate()
 {
     // Try to match the user based on both the plain-text password and a
     // hashed varient. The default "admin" user has its password stored in
     // plaintext so we need to hash it on first login.
     $user = User::model()->findByAttributes(array('username' => $this->username));
     $this->errorCode = self::ERROR_UNKNOWN_IDENTITY;
     if ($user !== null) {
         // Password is stored as plain-text
         if ($user->password === $this->password) {
             // Re-save the user, that way the password will get hashed
             $user->save();
             $this->errorCode = self::ERROR_NONE;
         } elseif (User::checkPassword($this->password, $user->password)) {
             $this->errorCode = self::ERROR_NONE;
         }
         if ($this->errorCode === self::ERROR_NONE) {
             $this->_userId = $user->id;
         }
     }
     return $this->errorCode;
 }
 /**
  * Action для страницы "Регистрация"
  */
 public function actionRegister()
 {
     // Переменные для формы
     $name = '';
     $email = '';
     $password = '';
     $result = false;
     if (isset($_POST['submit'])) {
         // Если форма отправлена
         // Получаем данные из формы
         $name = $_POST['name'];
         $email = $_POST['email'];
         $password = $_POST['password'];
         // Флаг ошибок
         $errors = false;
         // Валидация полей
         if (!User::checkName($name)) {
             $errors[] = 'Имя не должно быть короче 2-х символов';
         }
         if (!User::checkEmail($email)) {
             $errors[] = 'Неправильный email';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Неправильный пароль';
         }
         if (User::checkEmailExist($email)) {
             $errors[] = 'Такой email уже используется';
         }
         if ($errors == false) {
             // Если ошибок нет
             // Регистрируем пользователя
             $result = User::register($name, $email, $password);
         }
     }
     require_once ROOT . '/views/user/register.php';
     return true;
 }
Example #26
0
 /**
  * Action для страницы "Редактирование данных пользователя"
  */
 public function actionEdit()
 {
     $userId = User::checkLogged();
     $user = User::getUserById($userId);
     $name = $user['name'];
     $password = $user['password'];
     $result = false;
     if (isset($_POST['submit'])) {
         $name = $_POST['name'];
         $password = $_POST['password'];
         $errors = false;
         if (!User::checkName($name)) {
             $errors[] = 'Имя не должно быть короче 2-х символов';
         }
         if (!User::checkPassword($password)) {
             $errors[] = 'Пароль не должен быть короче 6-ти символов';
         }
         if ($errors == false) {
             $result = User::edit($userId, $name, $password);
         }
     }
     require_once ROOT . '/views/cabinet/edit.php';
     return true;
 }
Example #27
0
 /**
  * @param $user User
  * @param $pass string
  * @param $newaddr string
  * @return bool|string true or string on success, false on failure
  */
 protected function attemptChange(User $user, $pass, $newaddr)
 {
     if ($newaddr != '' && !Sanitizer::validateEmail($newaddr)) {
         $this->error('invalidemailaddress');
         return false;
     }
     $throttleCount = LoginForm::incLoginThrottle($user->getName());
     if ($throttleCount === true) {
         $this->error('login-throttled');
         return false;
     }
     global $wgRequirePasswordforEmailChange;
     if ($wgRequirePasswordforEmailChange && !$user->checkTemporaryPassword($pass) && !$user->checkPassword($pass)) {
         $this->error('wrongpassword');
         return false;
     }
     if ($throttleCount) {
         LoginForm::clearLoginThrottle($user->getName());
     }
     $oldaddr = $user->getEmail();
     $status = $user->setEmailWithConfirmation($newaddr);
     if (!$status->isGood()) {
         $this->getOutput()->addHTML('<p class="error">' . $this->getOutput()->parseInline($status->getWikiText('mailerror')) . '</p>');
         return false;
     }
     wfRunHooks('PrefsEmailAudit', array($user, $oldaddr, $newaddr));
     $user->saveSettings();
     return $status->value;
 }
Example #28
0
 /**
  * @dataProvider getHashes
  */
 public function testUserhash($password, $user_hash)
 {
     $this->assertTrue(User::checkPassword($password, $user_hash));
 }
Example #29
0
 public static function login($login, $pass, $remember = false)
 {
     $login = trim($login);
     $id = self::findByLogin($login);
     if (!$id) {
         throw new \Exception("Invalid username", self::ERR_INVALID_USER);
     }
     $user = new User($id);
     if (!$user->checkPassword($pass)) {
         throw new \Exception("The password for the username {$login} is incorrect", self::ERR_PASSWORD_INCORRECT);
     }
     self::setAuthCookie($user, $remember);
     self::updateLastLoginTime($user->id());
     return $user;
 }
Example #30
0
 /**
  * Extra test: password migration.
  * Manually insert an old-style password hash in the database, then
  * make sure that the password field in the database gets updated when
  * the migration function is invoked.
  * @depends testLegacyPassword
  */
 public function testPasswordMigration()
 {
     global $testUserId1;
     $password = '******';
     $oldPasswordHash = '$0$6cc7c5a5a21978e5587a59186cadb5e3';
     $object = new User($testUserId1);
     $object->save();
     // Update the database and check for match
     $query = "UPDATE blogUser " . "SET password='******' " . "WHERE userId='{$testUserId1}'";
     mysql_query($query);
     $object->load($testUserId1);
     $rows = $this->countTestRows();
     $this->assertTrue($object->checkPassword($password));
     $object->updatePasswordHash($password);
     // make sure a new row has been inserted
     $this->assertEquals($rows + 1, $this->countTestRows());
     // Check that the password has been re-encoded in the
     // in the database
     $updated = $object->getUpdated();
     $query = "SELECT password " . "FROM blogUser " . "WHERE userId='{$testUserId1}' " . "AND updated='{$updated}'";
     // print "$query\n";
     $result = mysql_query($query);
     if ($result) {
         $this->assertTrue(mysql_num_rows($result) === 1);
         $line = mysql_fetch_array($result);
         $newPasswordHash = db_sql_decode($line[0]);
         $this->assertNotEquals($oldPasswordHash, $newPasswordHash);
     } else {
         $this->assertFalse(true, "Got error in mySQL query '{$query}'");
     }
     // After the password has been re-encoded, make sure it still matches
     $this->assertTrue($object->checkPassword($password));
     // Make sure repeated calls to updatePasswordHash succeed
     $object->updatePasswordHash($password);
 }