Now deleting auth cookie when logging out
This commit is contained in:
+1
-1
@@ -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 \
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user