From 0002c57163f2518bc949eb2b06c91422a63789e4 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sun, 19 Apr 2015 16:57:37 +0200 Subject: remember logins and table for login form --- src/user.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/user.cpp b/src/user.cpp index 07312f9..649c40e 100644 --- a/src/user.cpp +++ b/src/user.cpp @@ -6,6 +6,7 @@ #include #include #include +#include namespace apps { @@ -55,11 +56,13 @@ bool user::check_login( std::string user, std::string password ) cppdb::session sql( cms.conn ); cppdb::result r; - r = sql << "SELECT password FROM users WHERE username=?" << user << cppdb::row; + r = sql << "SELECT id, password FROM user WHERE username=?" << user << cppdb::row; if( r.empty( ) ) { return false; } + int id; + r >> id; std::string pass; r >> pass; @@ -67,6 +70,14 @@ bool user::check_login( std::string user, std::string password ) return false; } + std::time_t now_time = std::time( 0 ); + std::tm now = *std::localtime( &now_time ); + + cppdb::statement stmt; + stmt = sql << "INSERT INTO login(user_id, last_login) VALUES(?, ?)" + << id << now; + stmt.exec( ); + return true; } @@ -101,6 +112,7 @@ bool login_form::validate( ) if( !cms.user.check_login( username.value( ), password.value( ) ) ) { username.valid( false ); password.valid( false ); + booster::ptime::sleep( booster::ptime( 5, 0 ) ); return false; } -- cgit v1.2.3-54-g00ecf