//! \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 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