|
Wt examples
3.3.0
|
#include <Session.h>
Public Member Functions | |
| Session () | |
| ~Session () | |
| Wt::Auth::AbstractUserDatabase & | users () |
| Wt::Auth::Login & | login () |
| std::vector< User > | topUsers (int limit) |
| std::string | userName () const |
| int | findRanking () |
| void | addToScore (int s) |
Static Public Member Functions | |
| static void | configureAuth () |
| static const Wt::Auth::AuthService & | auth () |
| static const Wt::Auth::AbstractPasswordService & | passwordAuth () |
| static const std::vector < const Wt::Auth::OAuthService * > & | oAuth () |
Private Member Functions | |
| Wt::Dbo::ptr< User > | user () const |
Private Attributes | |
| Wt::Dbo::backend::Sqlite3 | sqlite3_ |
| Wt::Dbo::Session | session_ |
| UserDatabase * | users_ |
| Wt::Auth::Login | login_ |
| Session::Session | ( | ) |
Definition at line 95 of file Session.C.
: sqlite3_(WApplication::instance()->appRoot() + "hangman.db") { session_.setConnection(sqlite3_); sqlite3_.setProperty("show-queries", "true"); session_.mapClass<User>("user"); session_.mapClass<AuthInfo>("auth_info"); session_.mapClass<AuthInfo::AuthIdentityType>("auth_identity"); session_.mapClass<AuthInfo::AuthTokenType>("auth_token"); users_ = new UserDatabase(session_); dbo::Transaction transaction(session_); try { session_.createTables(); /* * Add a default guest/guest account */ Auth::User guestUser = users_->registerNew(); guestUser.addIdentity(Auth::Identity::LoginName, "guest"); myPasswordService.updatePassword(guestUser, "guest"); Wt::log("info") << "Database created"; } catch (...) { Wt::log("info") << "Using existing database"; } transaction.commit(); }
| void Session::addToScore | ( | int | s | ) |
Definition at line 156 of file Session.C.
{
dbo::Transaction transaction(session_);
dbo::ptr<User> u = user();
if (u) {
u.modify()->score += s;
++u.modify()->gamesPlayed;
u.modify()->lastGame = WDateTime::currentDateTime();
}
transaction.commit();
}
| const Auth::AuthService & Session::auth | ( | ) | [static] |
| void Session::configureAuth | ( | ) | [static] |
Definition at line 73 of file Session.C.
{
myAuthService.setAuthTokensEnabled(true, "hangmancookie");
myAuthService.setEmailVerificationEnabled(true);
Auth::PasswordVerifier *verifier = new Auth::PasswordVerifier();
verifier->addHashFunction(new Auth::BCryptHashFunction(7));
#ifdef HAVE_CRYPT
// We want to still support users registered in the pre - Wt::Auth
// version of the hangman example
verifier->addHashFunction(new UnixCryptHashFunction());
#endif
myPasswordService.setVerifier(verifier);
myPasswordService.setStrengthValidator(new Auth::PasswordStrengthValidator());
myPasswordService.setAttemptThrottlingEnabled(true);
if (Auth::GoogleService::configured())
myOAuthServices.push_back(new Auth::GoogleService(myAuthService));
}
| int Session::findRanking | ( | ) |
Definition at line 192 of file Session.C.
{
dbo::Transaction transaction(session_);
dbo::ptr<User> u = user();
int ranking = -1;
if (u)
ranking = session_.query<int>("select distinct count(score) from user")
.where("score > ?").bind(u->score);
transaction.commit();
return ranking + 1;
}
| Wt::Auth::Login& Session::login | ( | ) | [inline] |
| const std::vector< const Auth::OAuthService * > & Session::oAuth | ( | ) | [static] |
| const Auth::AbstractPasswordService & Session::passwordAuth | ( | ) | [static] |
| std::vector< User > Session::topUsers | ( | int | limit | ) |
Definition at line 170 of file Session.C.
{
dbo::Transaction transaction(session_);
Users top = session_.find<User>().orderBy("score desc").limit(20);
std::vector<User> result;
for (Users::const_iterator i = top.begin(); i != top.end(); ++i) {
dbo::ptr<User> user = *i;
result.push_back(*user);
dbo::ptr<AuthInfo> auth = *user->authInfos.begin();
std::string name = auth->identity(Auth::Identity::LoginName).toUTF8();
result.back().name = name;
}
transaction.commit();
return result;
}
| std::string Session::userName | ( | ) | const |
| Auth::AbstractUserDatabase & Session::users | ( | ) |
Wt::Auth::Login Session::login_ [private] |
Wt::Dbo::Session Session::session_ [mutable, private] |
Wt::Dbo::backend::Sqlite3 Session::sqlite3_ [private] |
UserDatabase* Session::users_ [private] |
1.7.5.1