refactor
This commit is contained in:
parent
2c50e3ee7f
commit
7a540334bd
@ -23,6 +23,9 @@
|
||||
#include <Wt/WTextArea.h>
|
||||
|
||||
#include <eedb/widgets/BootstrapTheme.hpp>
|
||||
|
||||
#include <Wt/Auth/AuthWidget.h>
|
||||
|
||||
using std::move;
|
||||
|
||||
namespace eedb {
|
||||
@ -43,8 +46,9 @@ EEDB::EEDB(std::unique_ptr< Session > session, AuthPageFactory authPageFactory,
|
||||
_authPage->registerOnUserWeakLogin([&] { authEventLogin(LoginState::weak); });
|
||||
_authPage->registerOnUserStrongLogin([&] { authEventLogin(LoginState::strong); });
|
||||
_authPage->registerOnUserLogout([=] { authEventLogout(); });
|
||||
_authPage->attachTo(root());
|
||||
_authPage->processEnvironment();
|
||||
|
||||
root()->addWidget(_authPage->detach());
|
||||
}
|
||||
|
||||
void EEDB::authEventLogin(EEDB::LoginState state) {
|
||||
|
||||
@ -1,24 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
|
||||
namespace Wt {
|
||||
class WContainerWidget;
|
||||
}
|
||||
|
||||
namespace Wt::Auth {
|
||||
class AuthWidget;
|
||||
}
|
||||
|
||||
namespace eedb {
|
||||
|
||||
class AuthPage {
|
||||
public:
|
||||
virtual ~AuthPage() = default;
|
||||
|
||||
virtual void attachTo(Wt::WContainerWidget * parent) = 0;
|
||||
virtual void detach() = 0;
|
||||
virtual void processEnvironment() = 0;
|
||||
virtual std::unique_ptr< Wt::Auth::AuthWidget > detach() = 0;
|
||||
virtual void processEnvironment() = 0;
|
||||
|
||||
virtual void registerOnNeedVerification(std::function< void() > f) = 0;
|
||||
virtual void registerOnUserWeakLogin(std::function< void() > f) = 0;
|
||||
virtual void registerOnUserStrongLogin(std::function< void() > f) = 0;
|
||||
virtual void registerOnUserLogout(std::function< void() > f) = 0;
|
||||
virtual void registerOnNeedVerification(std::function< void() > f) = 0;
|
||||
virtual void registerOnUserWeakLogin(std::function< void() > f) = 0;
|
||||
virtual void registerOnUserStrongLogin(std::function< void() > f) = 0;
|
||||
virtual void registerOnUserLogout(std::function< void() > f) = 0;
|
||||
};
|
||||
} // namespace eedb
|
||||
|
||||
@ -6,18 +6,6 @@
|
||||
#include <Wt/Auth/AuthWidget.h>
|
||||
#include <Wt/WContainerWidget.h>
|
||||
|
||||
namespace std {
|
||||
|
||||
template <>
|
||||
struct default_delete< Wt::Auth::AuthWidget > {
|
||||
void operator()(Wt::Auth::AuthWidget * ptr) {
|
||||
if(ptr && !ptr->parent()) {
|
||||
delete ptr;
|
||||
}
|
||||
}
|
||||
};
|
||||
} // namespace std
|
||||
|
||||
namespace eedb {
|
||||
|
||||
struct DefaultAuthPage::DefaultAuthPagePriv {
|
||||
@ -57,35 +45,32 @@ DefaultAuthPage::DefaultAuthPage(const auth::Services & baseAuth,
|
||||
});
|
||||
}
|
||||
|
||||
void DefaultAuthPage::attachTo(Wt::WContainerWidget * parent) {
|
||||
parent->addWidget(std::move(_priv->_authWidget));
|
||||
}
|
||||
|
||||
void DefaultAuthPage::detach() {
|
||||
auto parent = dynamic_cast< Wt::WContainerWidget * >(_priv->_authWidget->parent());
|
||||
if(parent) {
|
||||
parent->removeWidget(_priv->_authWidget.get());
|
||||
std::unique_ptr< Wt::Auth::AuthWidget > DefaultAuthPage::detach() {
|
||||
if(_priv->_authWidget) {
|
||||
return std::move(_priv->_authWidget);
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
void DefaultAuthPage::processEnvironment() {
|
||||
_priv->_authWidget->processEnvironment();
|
||||
if(_priv->_authWidget)
|
||||
_priv->_authWidget->processEnvironment();
|
||||
}
|
||||
|
||||
void DefaultAuthPage::registerOnNeedVerification(std::function< void() > f) {
|
||||
_priv->_onNeedEmailVerification.connect([=]() { f(); });
|
||||
_priv->_onNeedEmailVerification.connect(f);
|
||||
}
|
||||
|
||||
void DefaultAuthPage::registerOnUserWeakLogin(std::function< void() > f) {
|
||||
_priv->_onUserWeakLogin.connect([=]() { f(); });
|
||||
_priv->_onUserWeakLogin.connect(f);
|
||||
}
|
||||
|
||||
void DefaultAuthPage::registerOnUserStrongLogin(std::function< void() > f) {
|
||||
_priv->_onUserStrongLogin.connect([=]() { f(); });
|
||||
_priv->_onUserStrongLogin.connect(f);
|
||||
}
|
||||
|
||||
void DefaultAuthPage::registerOnUserLogout(std::function< void() > f) {
|
||||
_priv->_onUserLogout.connect([=]() { f(); });
|
||||
_priv->_onUserLogout.connect(f);
|
||||
}
|
||||
|
||||
void DefaultAuthPage::notifyUserStrongLogin() const {
|
||||
|
||||
@ -21,8 +21,7 @@ class DefaultAuthPage final : public AuthPage {
|
||||
std::unique_ptr< Wt::Auth::AbstractUserDatabase > userDatabase,
|
||||
Wt::Auth::Login & session);
|
||||
|
||||
void attachTo(Wt::WContainerWidget * parent) override;
|
||||
void detach() override;
|
||||
std::unique_ptr< Wt::Auth::AuthWidget > detach() override;
|
||||
void processEnvironment() override;
|
||||
|
||||
void registerOnNeedVerification(std::function< void() > f) override;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user