Now deleting auth cookie when logging out

This commit is contained in:
emeric
2018-03-13 11:24:20 +01:00
parent f91aacb0a3
commit ba1968b02c
5 changed files with 35 additions and 22 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ lms_SOURCES = \
$(srcdir)/ui/Filters.cpp \ $(srcdir)/ui/Filters.cpp \
$(srcdir)/ui/HomeView.cpp \ $(srcdir)/ui/HomeView.cpp \
$(srcdir)/ui/LmsApplication.cpp \ $(srcdir)/ui/LmsApplication.cpp \
$(srcdir)/ui/LoginView.cpp \ $(srcdir)/ui/Auth.cpp \
$(srcdir)/ui/MediaPlayer.cpp \ $(srcdir)/ui/MediaPlayer.cpp \
$(srcdir)/ui/PlayQueueView.cpp \ $(srcdir)/ui/PlayQueueView.cpp \
$(srcdir)/ui/ReleasesView.cpp \ $(srcdir)/ui/ReleasesView.cpp \
+20 -15
View File
@@ -21,23 +21,22 @@
#include <Wt/WLineEdit> #include <Wt/WLineEdit>
#include <Wt/WCheckBox> #include <Wt/WCheckBox>
#include <Wt/WPushButton> #include <Wt/WPushButton>
#include <Wt/Auth/AuthModel>
#include "utils/Logger.hpp" #include "utils/Logger.hpp"
#include "common/Validators.hpp" #include "common/Validators.hpp"
#include "LmsApplication.hpp" #include "LmsApplication.hpp"
#include "LoginView.hpp" #include "Auth.hpp"
namespace UserInterface { namespace UserInterface {
LoginView::LoginView(Wt::Auth::Login& login, Wt::WContainerWidget *parent) Auth::Auth(Wt::WContainerWidget *parent)
: Wt::WTemplateFormView(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")); setTemplateText(Wt::WString::tr("template-login"));
addFunction("tr", &WTemplate::Functions::tr); 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")); auto loginBtn = new Wt::WPushButton(Wt::WString::tr("msg-login"));
bindWidget("login-btn", loginBtn); bindWidget("login-btn", loginBtn);
loginBtn->clicked().connect(std::bind([=, &login] loginBtn->clicked().connect(std::bind([=]
{ {
updateModel(model); updateModel(_model);
if (model->validate()) if (_model->validate())
model->login(login); _model->login(DbHandler().getLogin());
else else
updateView(model); updateView(_model);
})); }));
password->enterPressed().connect(std::bind([=] password->enterPressed().connect(std::bind([=]
@@ -73,16 +72,22 @@ LoginView::LoginView(Wt::Auth::Login& login, Wt::WContainerWidget *parent)
loginBtn->clicked().emit(Wt::WMouseEvent()); 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); this->setHidden(true);
})); }));
Wt::Auth::User user = model->processAuthToken(); Wt::Auth::User user = _model->processAuthToken();
model->loginUser(login, user, Wt::Auth::WeakLogin); _model->loginUser(DbHandler().getLogin(), user, Wt::Auth::WeakLogin);
updateView(model); updateView(_model);
}
void
Auth::logout()
{
_model->logout(DbHandler().getLogin());
} }
} // namespace UserInterface } // namespace UserInterface
+8 -2
View File
@@ -22,13 +22,19 @@
#include <Wt/WContainerWidget> #include <Wt/WContainerWidget>
#include <Wt/WTemplateFormView> #include <Wt/WTemplateFormView>
#include <Wt/Auth/Login> #include <Wt/Auth/Login>
#include <Wt/Auth/AuthModel>
namespace UserInterface { namespace UserInterface {
class LoginView : public Wt::WTemplateFormView class Auth : public Wt::WTemplateFormView
{ {
public: public:
LoginView(Wt::Auth::Login& login, Wt::WContainerWidget *parent = 0); Auth(Wt::WContainerWidget *parent = 0);
void logout();
private:
Wt::Auth::AuthModel* _model;
}; };
+4 -4
View File
@@ -30,7 +30,7 @@
#include "utils/Logger.hpp" #include "utils/Logger.hpp"
#include "utils/Utils.hpp" #include "utils/Utils.hpp"
#include "LoginView.hpp" #include "Auth.hpp"
#include "Explore.hpp" #include "Explore.hpp"
#include "HomeView.hpp" #include "HomeView.hpp"
#include "MediaPlayer.hpp" #include "MediaPlayer.hpp"
@@ -121,8 +121,8 @@ LmsApplication::LmsApplication(const Wt::WEnvironment& env, Wt::Dbo::SqlConnecti
{ {
DbHandler().getLogin().changed().connect(this, &LmsApplication::handleAuthEvent); DbHandler().getLogin().changed().connect(this, &LmsApplication::handleAuthEvent);
auto auth = new LoginView(DbHandler().getLogin()); _auth = new Auth();
root()->addWidget(auth); root()->addWidget(_auth);
} }
} }
@@ -279,7 +279,7 @@ LmsApplication::handleAuthEvent(void)
menuItem->triggered().connect(std::bind([=] menuItem->triggered().connect(std::bind([=]
{ {
setConfirmCloseMessage(""); setConfirmCloseMessage("");
DbHandler().getLogin().logout(); _auth->logout();
})); }));
} }
navbar->addMenu(rightMenu, Wt::AlignRight); navbar->addMenu(rightMenu, Wt::AlignRight);
+2
View File
@@ -28,6 +28,7 @@
#include "resource/ImageResource.hpp" #include "resource/ImageResource.hpp"
#include "resource/TranscodeResource.hpp" #include "resource/TranscodeResource.hpp"
#include "Auth.hpp"
namespace UserInterface { namespace UserInterface {
@@ -56,6 +57,7 @@ class LmsApplication : public Wt::WApplication
void handleAuthEvent(void); void handleAuthEvent(void);
Database::Handler _db; Database::Handler _db;
Auth* _auth;
Scanner::MediaScanner& _scanner; Scanner::MediaScanner& _scanner;
ImageResource* _imageResource; ImageResource* _imageResource;
TranscodeResource* _transcodeResource; TranscodeResource* _transcodeResource;