Files
2022-12-13 09:18:00 -06:00

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