1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| class User
{
/* on considère qu'il faut passer par UserManager pour
* se connecter et se déconnecter ;)
*
* Ce sera la seule classe susceptible de créer un utilisateur :D
*/
friend class UserManager;
public:
/* il est sans doute utile de permettre aux gens de tester les droits
* d'un utilisateur :D... C'est pour cela que l'énumération est publique
*/
enum e_rights { // au fait, le typedef est inutile en C++ :D
root,
settings,
remove,
create,
modify,
print,
search,
none
};
QString const & login() const{return login_;}
/* on permet à tout le monde de récupérer les droits de l'utilisateur
* (note que cela devrait être murement réfléchi :D)
*/
e_rights rights() const{return rigths_;}
/* on permet de tester si un mot de passe correspond à celui de
* l'utilisateur
*/
bool samePassWord(QString const & s) const
{
QString converted=MD5(s);// si mot de passe crypté, à adapter :D
return converted==pass_;
}
private:
/* constructeur et destructeur ne seront utilisés que par
* UserManager
*/
User(QString const & u, QString const & p, e_rights r ):
login_(u),pass_(p),rights_(r){}
~User(){}
/* C++1x permet de faire autrement, en attendant, on interdit
* la copie et l'affectation en déclarant le constructeur par
* copie et l'opérateur d'affectation SANS LES DEFINIR
* dans l'accessibilité privée
*/
User(User const &);
User & operator=(User const &);
/* les membres qui vont bien */
QString login_;
QString pass_;
e_rights rights_;
}; |
Partager