winix/core/users.h

67 lines
1.0 KiB
C++
Executable File

/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2008-2010, Tomasz Sowa
* All rights reserved.
*
*/
#ifndef headerfilecmslucoreusers
#define headerfilecmslucoreusers
#include <map>
#include "user.h"
#include "ugcontainer.h"
#include "lastcontainer.h"
#include "request.h"
#include "db.h"
class Users
{
typedef UGContainer<User> Table;
Table table;
Request * request;
long how_many_logged;
public:
typedef Table::Iterator Iterator;
typedef Table::SizeType SizeType;
LastContainer last;
Users();
void SetRequest(Request * request);
void Clear();
void ReadUsers(Db * db);
bool AddUser(const User & user);
bool IsUser(const std::string & name);
User * GetUser(long user_id);
User * GetUser(const std::string & name);
long GetUserId(const std::string & name);
Iterator Begin();
Iterator End();
SizeType Size();
User & operator[](SizeType pos);
void LoginUser(long user_id, bool remember_me);
void LogoutCurrentUser();
void IncrementLoggedUsers();
long HowManyLogged();
};
#endif