Wtx ~ Wt Extension Library
WtxLib
Session.cpp
1 #include "Session.h"
2 
3 
4 
5 Wtx::Sys::Session::Session()
6 {
7  m_users = std::make_unique<UserDatabase>( *this );
8 }
9 
10 Wtx::Sys::Session::~Session()
11 {
12 }
13 
14 
15 
16 Wt::Auth::AbstractUserDatabase & Wtx::Sys::Session::users()
17 {
18  return *m_users;
19 }
20 
21 Wt::Auth::Login & Wtx::Sys::Session::login()
22 {
23  return m_login;
24 }
25 
26 const Wt::Auth::Login & Wtx::Sys::Session::login() const
27 {
28  return m_login;
29 }
30 
31 Wtx::Sys::User::Item::Ptr Wtx::Sys::Session::user() const
32 {
33  if( login().loggedIn() )
34  return const_cast< Wtx::Sys::Session* >( this )-> user( login().user() );
35 
36  return Wt::Dbo::ptr< Wtx::Sys::User::Item>();
37 }
38 
39 Wtx::Sys::User::Item::Ptr Wtx::Sys::Session::user( const Wt::Auth::User & authUser )
40 {
41  Wt::Dbo::Transaction t(*this);
42 
43  Wt::Dbo::ptr< Wtx::Sys::Auth::AuthInfo > authInfo = m_users-> find( authUser );
44 
45  auto user = authInfo-> user();
46 
47  if( !user )
48  {
49  user = addNew<Wtx::Sys::User::Item>();
50  authInfo.modify()-> setUser( user );
51  }
52 
53  return user;
54 }
55 
56 
57