1 /* 2 * Copyright (C) 2011 Emweb bv, Herent, Belgium. 3 * 4 * See the LICENSE file for terms of use. 5 */ 6 7 #include "Login.h" 8 9 namespace Wt { 10 namespace Auth { 11 Login()12Login::Login() 13 : state_(LoginState::LoggedOut) 14 { } 15 login(const User & user,LoginState state)16void Login::login(const User& user, LoginState state) 17 { 18 if (state == LoginState::LoggedOut || !user.isValid()) { 19 logout(); 20 return; 21 } else { 22 if (state != LoginState::Disabled && user.status() == AccountStatus::Disabled) 23 state = LoginState::Disabled; 24 25 if (user != user_) { 26 user_ = user; 27 state_ = state; 28 changed_.emit(); 29 } else if (state != state_) { 30 state_ = state; 31 changed_.emit(); 32 } 33 } 34 } 35 logout()36void Login::logout() 37 { 38 if (user_.isValid()) { 39 user_ = User(); 40 state_ = LoginState::LoggedOut; 41 changed_.emit(); 42 } 43 } 44 state()45LoginState Login::state() const 46 { 47 return state_; 48 } 49 loggedIn()50bool Login::loggedIn() const 51 { 52 return user_.isValid() && state_ != LoginState::Disabled; 53 } 54 user()55const User& Login::user() const 56 { 57 return user_; 58 } 59 60 } 61 } 62