155 lines
4.5 KiB
C++
155 lines
4.5 KiB
C++
//! \file user.h
|
|
/************************************************************************
|
|
* $Id: user.h 661 2011-04-05 13:16:53Z elzubeir $
|
|
*
|
|
* ------------
|
|
* Description:
|
|
* ------------
|
|
*
|
|
* (C) Copyright 2009-2011 ALLCONTENT. All rights reserved.
|
|
*
|
|
* -----------------
|
|
* Revision Details: (Updated by Revision Control System)
|
|
* -----------------
|
|
* $Date: 2011-04-05 17:16:53 +0400 (Tue, 05 Apr 2011) $
|
|
* $Author: elzubeir $
|
|
* $Revision: 661 $
|
|
* $HeadURL: file:///opt/svn/socialhose/trunk/app/ClippingStation/user.h $
|
|
*
|
|
************************************************************************/
|
|
|
|
#ifndef USER_H
|
|
#define USER_H
|
|
|
|
class QSqlDatabase;
|
|
class QString;
|
|
|
|
#include <cstdio>
|
|
using namespace std;
|
|
|
|
|
|
enum USER_ROLE{
|
|
DATAENTRY_ROLE = 0,
|
|
ADMIN_ROLE,
|
|
CLIENT_ROL
|
|
};
|
|
|
|
//! \class User
|
|
//! \brief This class represents a user object that hold the information about the logged in user, like userid, username, password, ...etc. and can
|
|
//! do a lot of operations on the user object, such as authentication, ...etc
|
|
class User
|
|
{
|
|
public:
|
|
//! \fn User()
|
|
//! default contructor
|
|
//! \author elzubeir
|
|
User();
|
|
|
|
~User();
|
|
|
|
//! \fn setDatabase(QSqlDatabase databse)
|
|
//! sets the database object
|
|
//! \param[in] database an object of the opened database
|
|
//! \author elzubeir
|
|
void setSlaveDatabase(QSqlDatabase &databse);
|
|
|
|
//! \fn setDatabase(QSqlDatabase databse)
|
|
//! sets the database object
|
|
//! \param[in] database an object of the opened database
|
|
//! \author elzubeir
|
|
void setMasterDatabase(QSqlDatabase &databse);
|
|
|
|
//! \fn setId(int id)
|
|
//! sets the userid
|
|
//! \param[in] id int represents the user id value
|
|
//! \author elzubeir
|
|
void setId(int id);
|
|
|
|
//! \fn setUserRole(USER_ROLE role)
|
|
//! sets the user role
|
|
//! \param[in] role USER_ROLE represents the role value
|
|
//! \author elzubeir
|
|
void setUserRole(USER_ROLE role);
|
|
|
|
//! \fn setUsername(QString username)
|
|
//! sets the username
|
|
//! \param[in] username QString represents the user name value
|
|
//! \author elzubeir
|
|
void setUsername(QString username);
|
|
|
|
//! \fn setPassword(QString password)
|
|
//! sets the password
|
|
//! \param[in] password QString represents the user password value
|
|
//! \author elzubeir
|
|
void setPassword(QString password);
|
|
|
|
//! \fn id()
|
|
//! returns the user id value
|
|
//! \return int, the m_userid value
|
|
//! \author elzubeir
|
|
int id();
|
|
|
|
//! \fn userRole()
|
|
//! returns the user id value
|
|
//! \return ENUM USER_ROLE, the m_userRole value
|
|
//! \author elzubeir
|
|
USER_ROLE userRole();
|
|
|
|
//! \fn username()
|
|
//! returns the username value
|
|
//! \return QString, the m_username value
|
|
//! \author elzubeir
|
|
QString username();
|
|
|
|
//! \fn password()
|
|
//! returns the password value
|
|
//! \return QString, the m_password value
|
|
//! \author elzubeir
|
|
QString password();
|
|
|
|
//! \fn authenticate(int &userId)
|
|
//! authenticate the user
|
|
//! \param[out] userId int, holds the userId for the logged in user
|
|
//! \return bool
|
|
//! true if authentication successfull
|
|
//! false if authentication not successfull
|
|
//! \author elzubeir
|
|
bool authenticate();
|
|
|
|
//! \fn username()
|
|
//! returns the username value for the id
|
|
//! \param[in] id int, holds the userId for the required user
|
|
//! \param[in] id int, holds the userId for the required user
|
|
//! \return QString, the m_username value
|
|
//! \author elzubeir
|
|
static QString username(QSqlDatabase &database, int id);
|
|
|
|
void track(int pageId, int publicationId, int pubIssueId, int issueSecId, int publicationType, int publicationCountry, QString language, QString issueDate, QString created);
|
|
|
|
void track(int pageId, int seconds);
|
|
|
|
bool isUpdate(int pageId);
|
|
void updateTrack(int pageId, double seconds);
|
|
void insertTrack(int pageId, int publicationId, int pubIssueId, int issueSecId, int type, int country, QString language, QString issueDate, QString created);
|
|
|
|
|
|
private:
|
|
//! the user id value
|
|
int m_id;
|
|
|
|
USER_ROLE m_userRole;
|
|
|
|
//! the username value
|
|
QString m_username;
|
|
|
|
//! the user password value
|
|
QString m_password;
|
|
|
|
//! the databae object
|
|
QSqlDatabase m_slaveDatabase;
|
|
|
|
QSqlDatabase m_masterDatabase;
|
|
};
|
|
|
|
#endif // USER_H
|