Esempio n. 1
0
 static function setUserPassword($options)
 {
     //} $login,$pwd1,$pwd2,$old_pwd = null) {
     //инициализируем параметры по умолчанию
     $options = initFuncDefaultParams($options, array("id" => null, "login" => null, "old_pwd" => null));
     //ищем пользователя
     $user = self::getUser(array("id" => $options["id"], "login" => $options["login"], "hide_pwd" => false, "auth" => false));
     if (empty($user)) {
         return self::ERROR_USER_NOT_FOUND;
     }
     //
     //проверяем старый пароль, если он указан
     if (!empty($old_pwd) && !empty($user['pwd']) && !Crypt::password_verify($old_pwd, $user['pwd'])) {
         return self::ERROR_PWD_NOT_MATCH;
     }
     //проводим валидацию нового пароля
     $pwd_strong_level = 0;
     $error = self::validatePassword($options["pwd1"], $options["pwd2"], $pwd_strong_level);
     if ($error !== self::ERROR_NOT) {
         return $error;
     }
     //обновляем запись в бд
     Database::DB()->reset();
     Database::DB()->update(self::$users_table, array("pwd" => Crypt::password_hash($options["pwd1"], Crypt::CRYPT_HASH_DEFAULT)))->where("id", $user["id"])->exec();
     return self::ERROR_NOT;
 }