From ba1968b02c8396f353509eb3e2f526a916e02b3a Mon Sep 17 00:00:00 2001 From: emeric Date: Tue, 13 Mar 2018 11:24:20 +0100 Subject: [PATCH] Now deleting auth cookie when logging out --- src/Makefile.am | 2 +- src/ui/{LoginView.cpp => Auth.cpp} | 35 +++++++++++++++++------------- src/ui/{LoginView.hpp => Auth.hpp} | 10 +++++++-- src/ui/LmsApplication.cpp | 8 +++---- src/ui/LmsApplication.hpp | 2 ++ 5 files changed, 35 insertions(+), 22 deletions(-) rename src/ui/{LoginView.cpp => Auth.cpp} (72%) rename src/ui/{LoginView.hpp => Auth.hpp} (83%) diff --git a/src/Makefile.am b/src/Makefile.am index 6e998f5b..70143ff1 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -27,7 +27,7 @@ lms_SOURCES = \ $(srcdir)/ui/Filters.cpp \ $(srcdir)/ui/HomeView.cpp \ $(srcdir)/ui/LmsApplication.cpp \ - $(srcdir)/ui/LoginView.cpp \ + $(srcdir)/ui/Auth.cpp \ $(srcdir)/ui/MediaPlayer.cpp \ $(srcdir)/ui/PlayQueueView.cpp \ $(srcdir)/ui/ReleasesView.cpp \ diff --git a/src/ui/LoginView.cpp b/src/ui/Auth.cpp similarity index 72% rename from src/ui/LoginView.cpp rename to src/ui/Auth.cpp index f37fde26..70bd63c9 100644 --- a/src/ui/LoginView.cpp +++ b/src/ui/Auth.cpp @@ -21,23 +21,22 @@ #include #include #include -#include #include "utils/Logger.hpp" #include "common/Validators.hpp" #include "LmsApplication.hpp" -#include "LoginView.hpp" +#include "Auth.hpp" namespace UserInterface { -LoginView::LoginView(Wt::Auth::Login& login, Wt::WContainerWidget *parent) +Auth::Auth(Wt::WContainerWidget *parent) : Wt::WTemplateFormView(parent) { - auto model = new Wt::Auth::AuthModel(DbHandler().getAuthService(), DbHandler().getUserDatabase()); + _model = new Wt::Auth::AuthModel(DbHandler().getAuthService(), DbHandler().getUserDatabase()); - model->addPasswordAuth(&Database::Handler::getPasswordService()); + _model->addPasswordAuth(&Database::Handler::getPasswordService()); setTemplateText(Wt::WString::tr("template-login")); addFunction("tr", &WTemplate::Functions::tr); @@ -58,14 +57,14 @@ LoginView::LoginView(Wt::Auth::Login& login, Wt::WContainerWidget *parent) auto loginBtn = new Wt::WPushButton(Wt::WString::tr("msg-login")); bindWidget("login-btn", loginBtn); - loginBtn->clicked().connect(std::bind([=, &login] + loginBtn->clicked().connect(std::bind([=] { - updateModel(model); + updateModel(_model); - if (model->validate()) - model->login(login); + if (_model->validate()) + _model->login(DbHandler().getLogin()); else - updateView(model); + updateView(_model); })); password->enterPressed().connect(std::bind([=] @@ -73,16 +72,22 @@ LoginView::LoginView(Wt::Auth::Login& login, Wt::WContainerWidget *parent) loginBtn->clicked().emit(Wt::WMouseEvent()); })); - login.changed().connect(std::bind([=, &login] + DbHandler().getLogin().changed().connect(std::bind([=] { - if (login.loggedIn()) + if (DbHandler().getLogin().loggedIn()) this->setHidden(true); })); - Wt::Auth::User user = model->processAuthToken(); - model->loginUser(login, user, Wt::Auth::WeakLogin); + Wt::Auth::User user = _model->processAuthToken(); + _model->loginUser(DbHandler().getLogin(), user, Wt::Auth::WeakLogin); - updateView(model); + updateView(_model); +} + +void +Auth::logout() +{ + _model->logout(DbHandler().getLogin()); } } // namespace UserInterface diff --git a/src/ui/LoginView.hpp b/src/ui/Auth.hpp similarity index 83% rename from src/ui/LoginView.hpp rename to src/ui/Auth.hpp index 7a7bbea2..37e09eff 100644 --- a/src/ui/LoginView.hpp +++ b/src/ui/Auth.hpp @@ -22,13 +22,19 @@ #include #include #include +#include namespace UserInterface { -class LoginView : public Wt::WTemplateFormView +class Auth : public Wt::WTemplateFormView { public: - LoginView(Wt::Auth::Login& login, Wt::WContainerWidget *parent = 0); + Auth(Wt::WContainerWidget *parent = 0); + + void logout(); + + private: + Wt::Auth::AuthModel* _model; }; diff --git a/src/ui/LmsApplication.cpp b/src/ui/LmsApplication.cpp index dcb6f86e..75451c6c 100644 --- a/src/ui/LmsApplication.cpp +++ b/src/ui/LmsApplication.cpp @@ -30,7 +30,7 @@ #include "utils/Logger.hpp" #include "utils/Utils.hpp" -#include "LoginView.hpp" +#include "Auth.hpp" #include "Explore.hpp" #include "HomeView.hpp" #include "MediaPlayer.hpp" @@ -121,8 +121,8 @@ LmsApplication::LmsApplication(const Wt::WEnvironment& env, Wt::Dbo::SqlConnecti { DbHandler().getLogin().changed().connect(this, &LmsApplication::handleAuthEvent); - auto auth = new LoginView(DbHandler().getLogin()); - root()->addWidget(auth); + _auth = new Auth(); + root()->addWidget(_auth); } } @@ -279,7 +279,7 @@ LmsApplication::handleAuthEvent(void) menuItem->triggered().connect(std::bind([=] { setConfirmCloseMessage(""); - DbHandler().getLogin().logout(); + _auth->logout(); })); } navbar->addMenu(rightMenu, Wt::AlignRight); diff --git a/src/ui/LmsApplication.hpp b/src/ui/LmsApplication.hpp index 74006fee..f812cad4 100644 --- a/src/ui/LmsApplication.hpp +++ b/src/ui/LmsApplication.hpp @@ -28,6 +28,7 @@ #include "resource/ImageResource.hpp" #include "resource/TranscodeResource.hpp" +#include "Auth.hpp" namespace UserInterface { @@ -56,6 +57,7 @@ class LmsApplication : public Wt::WApplication void handleAuthEvent(void); Database::Handler _db; + Auth* _auth; Scanner::MediaScanner& _scanner; ImageResource* _imageResource; TranscodeResource* _transcodeResource;