From bf2ae4b4eba2fb9ebd852bd51c145b866552d88a Mon Sep 17 00:00:00 2001 From: EndrII <endriimail@gmail.com> Date: Mon, 5 Aug 2019 16:48:34 +0300 Subject: [PATCH] fix login data --- .../ProfileViewItems/mainmenumodel.cpp | 28 +++++++++++++++++++ .../back-end/ProfileViewItems/mainmenumodel.h | 4 +++ 2 files changed, 32 insertions(+) diff --git a/SnakeClient/SnakeApp/back-end/ProfileViewItems/mainmenumodel.cpp b/SnakeClient/SnakeApp/back-end/ProfileViewItems/mainmenumodel.cpp index fafaadc..76e6b66 100644 --- a/SnakeClient/SnakeApp/back-end/ProfileViewItems/mainmenumodel.cpp +++ b/SnakeClient/SnakeApp/back-end/ProfileViewItems/mainmenumodel.cpp @@ -5,12 +5,27 @@ #include <back-end/settings.h> +void MainMenuModel::handleClientStatusChanged(bool) { + auto status = OnlineStatus::ClientIsOffline; + if (_client->isOnline()) { + status = OnlineStatus::AuthorizationRequired; + } + + setOnlineStatus(status); +} + MainMenuModel::MainMenuModel(QObject *ptr): QObject (ptr) { _userViewModel = new UserView (this); _conf = Settings::instans(); auto adderss = _conf->value(SERVER_ADDRESS, SERVER_ADDRESS_DEFAULT).toString(); auto port = _conf->value(SERVER_ADDRESS_PORT, SERVER_ADDRESS_DEFAULT_PORT).toInt(); _client = new ClientProtocol::Client(adderss, static_cast<unsigned short>(port), this); + + connect(_client, &ClientProtocol::Client::loginChanged, + this , &MainMenuModel::handleClientStatusChanged); + + connect(_client, &ClientProtocol::Client::onlineChanged, + this , &MainMenuModel::handleClientStatusChanged); } QObject *MainMenuModel::userViewModel() const { @@ -28,3 +43,16 @@ void MainMenuModel::setOnlineStatus(int onlineStatus) { _onlineStatus = static_cast<OnlineStatus>(onlineStatus); emit onlineStatusChanged(); } + +void MainMenuModel::login(const QString &email, const QString &pass) { + if (!_client->login(email, pass.toUtf8())) { + setOnlineStatus(OnlineStatus::AuthorizationFail); + } +} + +void MainMenuModel::registerNewUser(const QString &email, const QString &name, + const QString &pass) { + if (!_client->login(email, pass.toUtf8())) { + setOnlineStatus(OnlineStatus::AuthorizationFail); + } +} diff --git a/SnakeClient/SnakeApp/back-end/ProfileViewItems/mainmenumodel.h b/SnakeClient/SnakeApp/back-end/ProfileViewItems/mainmenumodel.h index 723d0f6..5e08eb5 100644 --- a/SnakeClient/SnakeApp/back-end/ProfileViewItems/mainmenumodel.h +++ b/SnakeClient/SnakeApp/back-end/ProfileViewItems/mainmenumodel.h @@ -31,6 +31,8 @@ private: OnlineStatus _onlineStatus = ClientIsOffline; QSettings *_conf = nullptr; +private slots: + void handleClientStatusChanged(bool); public: MainMenuModel(QObject *ptr = nullptr); @@ -40,6 +42,8 @@ public: public slots: void setOnlineStatus(int onlineStatus); + void login(const QString& email, const QString& pass); + void registerNewUser(const QString& email, const QString& name, const QString& pass); signals: void userViewModelChanged(QObject* userViewModel);