| 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
 1.7.5.1