#include <Session.h>
List of all members.
Detailed Description
Definition at line 23 of file Session.h.
Constructor & Destructor Documentation
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();
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();
}
Member Function Documentation
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();
}
Definition at line 213 of file Session.C.
{
return myAuthService;
}
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
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));
}
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;
}
| const std::vector< const Auth::OAuthService * > & Session::oAuth |
( |
| ) |
[static] |
Definition at line 223 of file Session.C.
{
return myOAuthServices;
}
Definition at line 218 of file Session.C.
{
return myPasswordService;
}
Definition at line 170 of file Session.C.
{
dbo::Transaction transaction(session_);
Users top = session_.find<User>().orderBy("score desc").limit(limit);
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;
}
Definition at line 132 of file Session.C.
{
if (login_.loggedIn()) {
dbo::ptr<AuthInfo> authInfo = users_->find(login_.user());
dbo::ptr<User> user = authInfo->user();
if (!user) {
user = session_.add(new User());
authInfo.modify()->setUser(user);
}
return user;
} else
return dbo::ptr<User>();
}
Definition at line 148 of file Session.C.
{
if (login_.loggedIn())
return login_.user().identity(Auth::Identity::LoginName).toUTF8();
else
return std::string();
}
Member Data Documentation
The documentation for this class was generated from the following files:
- /usr/src/RPM/BUILD/wt-3.3.5-rc2/examples/hangman/Session.h
- /usr/src/RPM/BUILD/wt-3.3.5-rc2/examples/hangman/Session.C