diff options
author | Huynh Tran <nthuynh75@gmail.com> | 2005-06-19 12:46:25 +0000 |
---|---|---|
committer | Huynh Tran <nthuynh75@gmail.com> | 2005-06-19 12:46:25 +0000 |
commit | 92705ce7bc5d3360ed79b2ecbc2aa0fc29090840 (patch) | |
tree | 1bbc827a79e2010d3ef8c669cc7577d8299e9874 /src/account.h | |
parent | f194e2fb62234ff66d0ee12282ce4a22aa237e89 (diff) | |
download | manaserv-92705ce7bc5d3360ed79b2ecbc2aa0fc29090840.tar.gz manaserv-92705ce7bc5d3360ed79b2ecbc2aa0fc29090840.tar.bz2 manaserv-92705ce7bc5d3360ed79b2ecbc2aa0fc29090840.tar.xz manaserv-92705ce7bc5d3360ed79b2ecbc2aa0fc29090840.zip |
Passwords are now encrypted when creating a new Account, added unit tests for the Account class and moved functors into a separate header file for reuse.
Diffstat (limited to 'src/account.h')
-rw-r--r-- | src/account.h | 191 |
1 files changed, 161 insertions, 30 deletions
diff --git a/src/account.h b/src/account.h index 8bdeb7ff..aa1590c3 100644 --- a/src/account.h +++ b/src/account.h @@ -4,58 +4,189 @@ * * This file is part of The Mana World. * - * The Mana World is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. + * The Mana World is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or any later version. * - * The Mana World is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * The Mana World is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. * - * You should have received a copy of the GNU General Public License - * along with The Mana World; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * You should have received a copy of the GNU General Public License along + * with The Mana World; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * $Id$ */ -#ifndef ACCOUNT_H -#define ACCOUNT_H + +#ifndef _TMWSERV_ACCOUNT_H_ +#define _TMWSERV_ACCOUNT_H_ + #include <string> #include <vector> + #include "object.h" + +// kindjal: are we actually using this? #define ACC_MAX_CHARS 4 + +namespace tmwserv +{ + + /** * A player account. */ class Account { public: - Account(); - Account(const std::string &name, const std::string &password, - const std::string &email, const std::vector<Being*> &beings); - ~Account(); + /** + * Default constructor. + */ + Account(void) + throw(); + + + /** + * Constructor with initial account info. + * + * @param name the user name. + * @param password the user password. + * @param email the user email. + * @param characters the characters. + */ + Account(const std::string& name, + const std::string& password, + const std::string& email, + const Beings& characters); + + + /** + * Destructor. + */ + ~Account(void) + throw(); + + + /** + * Set the user name. + * + * @param name the user name. + */ + void + setName(const std::string& name); + + + /** + * Get the user name. + * + * @return the user name. + */ + const std::string& + getName(void) const; + + + /** + * Set the user password. + * The password will be encrypted before saved into the storage. + * + * @param password the user password. + */ + void + setPassword(const std::string& password); + + + /** + * Get the user password. + * + * @return the user password. + */ + const std::string& + getPassword(void) const; - void setName(const std::string &name); - void setPassword(const std::string &password); - void setEmail(const std::string &email); - void setCharacters(const std::vector<Being*> &beings); - const std::string& getEmail(); - const std::string& getPassword(); - const std::string& getName(); - Being* getCharacter(const std::string &name); + /** + * Set the user email address. + * + * @param email the user email address. + */ + void + setEmail(const std::string& email); + + + /** + * Get the user email address. + * + * @return the user email address. + */ + const std::string& + getEmail(void) const; + + + /** + * Set the characters. + * + * @param characters a list of characters. + */ + void + setCharacters(const Beings& characters); + + + /** + * Add a new character. + * + * @param character the new character. + */ + void + addCharacter(Being* character); + + + /** + * Get all the characters. + * + * @return all the characters. + */ + Beings& + getCharacters(void); + + + /** + * Get a character by name. + * + * @return the character if found, NULL otherwise. + */ + Being* + getCharacter(const std::string& name); + private: - std::string name; /**< Username */ - std::string password; /**< Password (md5 hash) */ - std::string email; /**< Email address */ - std::vector<Being*> beings; /**< Player data */ + /** + * Copy constructor. + */ + Account(const Account& rhs); + + + /** + * Assignment operator. + */ + Account& + operator=(const Account& rhs); + + + private: + std::string mName; /**< user name */ + std::string mPassword; /**< user password (encrypted) */ + std::string mEmail; /**< user email address */ + Beings mCharacters; /**< player data */ }; -#endif + +} // namespace tmwserv + + +#endif // _TMWSERV_ACCOUNT_H_ |