the first part of reimplementing has been done

now we have app object and singletons are only: log logn plugin and app



git-svn-id: svn://ttmath.org/publicrep/winix/trunk@628 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2010-08-10 16:12:50 +00:00
parent 6897192364
commit 217cf1420b
191 changed files with 9529 additions and 7250 deletions

View File

@@ -7,17 +7,23 @@
*
*/
#include <arpa/inet.h>
#include "users.h"
#include "db.h"
Users::Users()
{
how_many_logged = 0;
Clear();
}
void Users::SetRequest(Request * prequest)
{
request = prequest;
}
void Users::Clear()
{
@@ -26,11 +32,10 @@ void Users::Clear()
void Users::ReadUsers()
void Users::ReadUsers(Db * db)
{
Clear();
db.GetUsers(table);
db->GetUsers(table);
}
@@ -110,13 +115,59 @@ User & Users::operator[](Users::SizeType pos)
}
void Users::LoginUser(long user_id, bool remember_me)
{
if( !request->session )
return;
request->session->puser = GetUser(user_id);
request->session->spam_score = 0;
if( !request->session->puser )
{
log << log1 << "Users: user id: " << user_id << " is not in system.users table" << logend;
return;
}
request->session->remember_me = remember_me;
last.UserLogin(user_id, request->session->puser->name, inet_addr(request->env_remote_addr), request->session->id);
how_many_logged += 1;
log << log2 << "User " << request->session->puser->name << " (id: " << user_id << ") logged" << logend;
}
void Users::LogoutCurrentUser()
{
if( !request->session || !request->session->puser )
return;
log << log2 << "Users: user " << request->session->puser->name << ", id: "
<< request->session->puser->id << " logged out" << logend;
last.UserLogout(request->session->puser->id, request->session->id);
if( how_many_logged > 0 ) // for safety
how_many_logged -= 1;
request->session->puser = 0;
request->session->remember_me = 0;
}
void Users::IncrementLoggedUsers()
{
how_many_logged += 1;
}
long Users::HowManyLogged()
{
return how_many_logged;
}