#include <Session.h>
Definition at line 24 of file Session.h.
◆ Session()
Definition at line 88 of file Session.C.
90 auto sqlite3 = std::make_unique<Dbo::backend::Sqlite3>(WApplication::instance()->appRoot() +
"hangman.db");
91 sqlite3->setProperty(
"show-queries",
"true");
109 guestUser.
addIdentity(Auth::Identity::LoginName,
"guest");
110 myPasswordService.updatePassword(guestUser,
"guest");
112 log(
"info") <<
"Database created";
114 log(
"info") <<
"Using existing database";
117 transaction.commit();
std::unique_ptr< UserDatabase > users_
Wt::Dbo::Session session_
void addIdentity(const std::string &provider, const WString &identity)
void mapClass(const char *tableName)
void setConnection(std::unique_ptr< SqlConnection > connection)
◆ addToScore()
void Session::addToScore |
( |
int |
s | ) |
|
Definition at line 144 of file Session.C.
151 ++u.
modify()->gamesPlayed;
152 u.
modify()->lastGame = WDateTime::currentDateTime();
155 transaction.commit();
Wt::Dbo::ptr< User > user() const
◆ auth()
Definition at line 201 of file Session.C.
203 return myAuthService;
◆ configureAuth()
void Session::configureAuth |
( |
| ) |
|
|
static |
Definition at line 65 of file Session.C.
67 myAuthService.setAuthTokensEnabled(
true,
"hangmancookie");
68 myAuthService.setEmailVerificationEnabled(
true);
70 auto verifier = std::make_unique<Auth::PasswordVerifier>();
71 verifier->addHashFunction(std::make_unique<Auth::BCryptHashFunction>(12));
76 verifier->addHashFunction(std::make_unique<UnixCryptHashFunction>());
79 myPasswordService.setVerifier(std::move(verifier));
80 myPasswordService.setStrengthValidator(std::make_unique<Auth::PasswordStrengthValidator>());
81 myPasswordService.setPasswordThrottle(std::make_unique<Wt::Auth::AuthThrottle>());
83 if (Auth::GoogleService::configured()) {
84 myOAuthServices.push_back(std::make_unique<Auth::GoogleService>(myAuthService));
◆ findRanking()
int Session::findRanking |
( |
| ) |
|
Definition at line 180 of file Session.C.
188 ranking =
session_.
query<
int>(
"select distinct count(score) from user")
189 .where(
"score > ?").bind(u->score);
191 transaction.commit();
Query< Result, BindStrategy > query(const std::string &sql)
◆ login()
◆ oAuth()
Definition at line 211 of file Session.C.
213 std::vector<const Auth::OAuthService *> result;
214 result.reserve(myOAuthServices.size());
215 for (
const auto& service : myOAuthServices) {
216 result.push_back(service.get());
◆ passwordAuth()
Definition at line 206 of file Session.C.
208 return myPasswordService;
◆ topUsers()
std::vector< User > Session::topUsers |
( |
int |
limit | ) |
|
Definition at line 158 of file Session.C.
164 std::vector<User> result;
167 result.push_back(*
user);
170 std::string name =
auth->identity(Auth::Identity::LoginName).toUTF8();
172 result.back().name = name;
175 transaction.commit();
static const Wt::Auth::AuthService & auth()
Query< ptr< C >, BindStrategy > find(const std::string &condition=std::string())
◆ user()
Definition at line 120 of file Session.C.
const User & user() const
ptr< C > add(ptr< C > &ptr)
◆ userName()
std::string Session::userName |
( |
| ) |
const |
Definition at line 136 of file Session.C.
141 return std::string();
WString identity(const std::string &provider) const
std::string toUTF8() const
◆ users()
◆ login_
◆ session_
◆ users_
The documentation for this class was generated from the following files: