#ifndef __BLOGUSERDATABASE_H__ #define __BLOGUSERDATABASE_H__ #include #include #include class User; class BlogUserDatabase : public Wt::Auth::AbstractUserDatabase { public: BlogUserDatabase(Wt::Dbo::Session &session); ~BlogUserDatabase(); Wt::Dbo::ptr find(const Wt::Auth::User &user) const; Wt::Auth::User find(Wt::Dbo::ptr user) const; Transaction *startTransaction() final; Wt::Auth::User findWithId(const std::string &id) const final; Wt::Auth::User findWithIdentity(const std::string &provider, const Wt::WString &identity) const final; void addIdentity(const Wt::Auth::User &user, const std::string &provider, const Wt::WString &identity) final; void removeIdentity(const Wt::Auth::User &user, const std::string &provider) final; Wt::WString identity(const Wt::Auth::User &user, const std::string &provider) const final; void setLastLoginAttempt(const Wt::Auth::User &user, const Wt::WDateTime &t) final; Wt::Auth::PasswordHash password(const Wt::Auth::User &user) const final; void setPassword(const Wt::Auth::User &user, const Wt::Auth::PasswordHash &password) final; protected: struct WithUser { WithUser(const BlogUserDatabase &self, const Wt::Auth::User &user); ~WithUser(); Wt::Dbo::Transaction transaction; }; void getUser(const std::string &id) const; private: Wt::Dbo::Session &m_session; mutable Wt::Dbo::ptr m_user; }; #endif // __BLOGUSERDATABASE_H__