75 lines
1.3 KiB
C++
Executable File
75 lines
1.3 KiB
C++
Executable File
/*
|
|
* This file is a part of CMSLU -- Content Management System like Unix
|
|
* and is not publicly distributed
|
|
*
|
|
* Copyright (c) 2008-2009, Tomasz Sowa
|
|
* All rights reserved.
|
|
*
|
|
*/
|
|
|
|
#include <arpa/inet.h>
|
|
|
|
#include "content.h"
|
|
#include "../core/request.h"
|
|
#include "../core/error.h"
|
|
#include "../core/db.h"
|
|
#include "../core/data.h"
|
|
|
|
|
|
|
|
/*
|
|
void Content::PostFunLoginAddLast()
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
*/
|
|
|
|
|
|
void Content::PostFunLogin()
|
|
{
|
|
try
|
|
{
|
|
std::string * login = request.PostVar("login");
|
|
std::string * pass = request.PostVar("password");
|
|
std::string * remem = request.PostVar("rememberme");
|
|
long user_id;
|
|
|
|
if( login && pass && db.CheckUser(*login, *pass, user_id) )
|
|
{
|
|
request.session->puser = data.users.GetUser(user_id);
|
|
request.session->spam_score = 0;
|
|
|
|
if( !request.session->puser )
|
|
{
|
|
log << log1 << "Content: user: " << login << " is in the database but is not in data.users" << logend;
|
|
return;
|
|
}
|
|
|
|
if( remem )
|
|
request.session->remember_me = true;
|
|
|
|
data.last.UserLogin(user_id, *login, inet_addr(request.env_remote_addr), request.session->id);
|
|
|
|
log << log2 << "User " << login << " (id: " << user_id << ") logged" << logend;
|
|
}
|
|
|
|
// !! zglosic komunikat o nie poprawnym logowaniu
|
|
}
|
|
catch(const Error &)
|
|
{
|
|
}
|
|
|
|
|
|
if( request.is_item )
|
|
RedirectTo(request.item);
|
|
else
|
|
RedirectTo(*request.dir_table.back());
|
|
}
|
|
|
|
|
|
|