From a6af6015a4de2618aa9f1b791314e266ce2f1011 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 4 Jul 2017 17:00:25 -0700 Subject: [PATCH] add a way to login on command-line --- tools/atp-client/src/ATPClientApp.cpp | 45 ++++++++++++++++++++++----- tools/atp-client/src/ATPClientApp.h | 3 ++ 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/tools/atp-client/src/ATPClientApp.cpp b/tools/atp-client/src/ATPClientApp.cpp index ac69da7e96..76bf706205 100644 --- a/tools/atp-client/src/ATPClientApp.cpp +++ b/tools/atp-client/src/ATPClientApp.cpp @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -42,15 +43,15 @@ ATPClientApp::ATPClientApp(int argc, char* argv[]) : const QCommandLineOption uploadOption("T", "upload local file", "local-file-to-send"); parser.addOption(uploadOption); + const QCommandLineOption authOption("u", "set usename and pass", "username:password"); + parser.addOption(authOption); + const QCommandLineOption outputFilenameOption("o", "output filename", "output-file-name"); parser.addOption(outputFilenameOption); const QCommandLineOption domainAddressOption("d", "domain-server address", "127.0.0.1"); parser.addOption(domainAddressOption); - const QCommandLineOption cacheSTUNOption("s", "cache stun-server response"); - parser.addOption(cacheSTUNOption); - const QCommandLineOption listenPortOption("listenPort", "listen port", QString::number(INVALID_PORT)); parser.addOption(listenPortOption); @@ -107,6 +108,18 @@ ATPClientApp::ATPClientApp(int argc, char* argv[]) : _localUploadFile = parser.value(uploadOption); } + if (parser.isSet(authOption)) { + QStringList pieces = parser.value(authOption).split(":"); + if (pieces.size() != 2) { + qDebug() << "-u should be followed by username:password"; + parser.showHelp(); + Q_UNREACHABLE(); + } + + _username = pieces[0]; + _password = pieces[1]; + } + if (parser.isSet(listenPortOption)) { _listenPort = parser.value(listenPortOption).toInt(); @@ -135,11 +148,6 @@ void ATPClientApp::connectToDomain(QString domainServerAddress) { qDebug() << "domain-server address is" << domainServerAddress; } - DependencyManager::set(); - auto accountManager = DependencyManager::get(); - QString username = accountManager->getAccountInfo().getUsername(); - qDebug() << "username is" << username; - Setting::init(); DependencyManager::registerInheritance(); @@ -177,6 +185,27 @@ void ATPClientApp::connectToDomain(QString domainServerAddress) { auto assetClient = DependencyManager::set(); assetClient->init(); + auto accountManager = DependencyManager::get(); + accountManager->setIsAgent(true); + accountManager->setAuthURL(NetworkingConstants::METAVERSE_SERVER_URL); + + if (_verbose) { + QString username = accountManager->getAccountInfo().getUsername(); + qDebug() << "cached username is" << username << ", isLoggedIn =" << accountManager->isLoggedIn(); + } + + if (!_username.isEmpty()) { + connect(accountManager.data(), &AccountManager::loginComplete, this, [&](){ + if (_verbose) { + qDebug() << "login successful"; + } + }); + connect(accountManager.data(), &AccountManager::loginFailed, this, [&](){ + qDebug() << "login failed."; + }); + accountManager->requestAccessToken(_username, _password); + } + QTimer* _timeoutTimer = new QTimer(this); _timeoutTimer->setSingleShot(true); connect(_timeoutTimer, &QTimer::timeout, this, &ATPClientApp::timedOut); diff --git a/tools/atp-client/src/ATPClientApp.h b/tools/atp-client/src/ATPClientApp.h index ce85d2700e..c2401e54af 100644 --- a/tools/atp-client/src/ATPClientApp.h +++ b/tools/atp-client/src/ATPClientApp.h @@ -56,6 +56,9 @@ private: int _listenPort { INVALID_PORT }; + QString _username; + QString _password; + QTimer* _domainCheckInTimer { nullptr }; QTimer* _timeoutTimer { nullptr }; };