#pragma once

#include <functional>

namespace Wt {
class WContainerWidget;
}

namespace eedb {

class AuthPage {
  public:
    virtual ~AuthPage() = default;

    virtual void attachTo(Wt::WContainerWidget * parent) = 0;
    virtual void detach()                                = 0;
    virtual void processEnvironment()                    = 0;

    virtual void registerNeedVerification(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;
};
}
