summaryrefslogtreecommitdiff
path: root/src/user.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/user.cpp')
-rw-r--r--src/user.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/user.cpp b/src/user.cpp
index 36ad821..c77381d 100644
--- a/src/user.cpp
+++ b/src/user.cpp
@@ -5,6 +5,7 @@
#include <cppcms/url_dispatcher.h>
#include <cppcms/url_mapper.h>
#include <cppdb/frontend.h>
+#include <cppcms/session_interface.h>
namespace apps {
@@ -13,21 +14,34 @@ user::user( strusCms &cms )
{
cms.dispatcher( ).assign( "/login", &user::login, this );
cms.mapper( ).assign( "login" );
+
+ cms.dispatcher( ).assign( "/logout", &user::logout, this );
+ cms.mapper( ).assign( "logout" );
}
void user::login( )
{
content::user c( cms );
- c.title = "strusCms";
+ ini( c );
if( request( ).request_method( ) == "POST" ) {
c.login.load( context( ) );
if( c.login.validate( ) ) {
response( ).set_redirect_header( cms.root( ) );
+ session( )["username"] = c.login.username.value( );
+ session( ).expose( "username" );
}
}
render( "login", c );
}
+void user::logout( )
+{
+ content::user c( cms );
+ session( ).clear( );
+ ini( c );
+ render( "logout", c );
+}
+
// TODO: make this a salted hash
bool user::check_login( std::string user, std::string password )
{