1 // This may look like C code, but it's really -*- C++ -*- 2 /* 3 * Copyright (C) 2021 Emweb bv, Herent, Belgium. 4 * 5 * See the LICENSE file for terms of use. 6 */ 7 #ifndef SESSION_H_ 8 #define SESSION_H_ 9 10 #include <Wt/Auth/Login.h> 11 #include <Wt/Auth/Dbo/UserDatabase.h> 12 13 #include <Wt/Dbo/Session.h> 14 #include <Wt/Dbo/ptr.h> 15 16 #include "User.h" 17 18 namespace dbo = Wt::Dbo; 19 20 using UserDatabase = Wt::Auth::Dbo::UserDatabase<AuthInfo>; 21 22 class Session : public dbo::Session 23 { 24 public: 25 static void configureAuth(); 26 static void finalizeAuth(); 27 28 Session(const std::string& sqliteDb); 29 30 dbo::ptr<User> user() const; 31 32 Wt::Auth::AbstractUserDatabase& users(); login()33 Wt::Auth::Login& login() { return login_; } 34 35 static const Wt::Auth::AuthService& auth(); 36 static const Wt::Auth::PasswordService& passwordAuth(); 37 static const std::vector<const Wt::Auth::Saml::Service *> saml(); 38 39 private: 40 std::unique_ptr<UserDatabase> users_; 41 Wt::Auth::Login login_; 42 }; 43 44 #endif // SSESSION_H_ 45