diff options
Diffstat (limited to 'diplomacy/server/user.py')
-rw-r--r-- | diplomacy/server/user.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/diplomacy/server/user.py b/diplomacy/server/user.py index cfb6ad4..11cca15 100644 --- a/diplomacy/server/user.py +++ b/diplomacy/server/user.py @@ -15,7 +15,7 @@ # with this program. If not, see <https://www.gnu.org/licenses/>. # ============================================================================== """ User object, defined with a username and a hashed password. """ -from diplomacy.utils import strings +from diplomacy.utils import strings, parsing from diplomacy.utils.common import is_valid_password from diplomacy.utils.jsonable import Jsonable @@ -35,3 +35,18 @@ class User(Jsonable): def is_valid_password(self, password): """ Return True if given password matches user hashed password. """ return is_valid_password(password, self.password_hash) + +class DaideUser(User): + """ DAIDE user class """ + __slots__ = ['username', 'password_hash', 'client_name', 'client_version', 'passcode'] + model = parsing.extend_model(User.model, { + strings.CLIENT_NAME: str, + strings.CLIENT_VERSION: str, + strings.PASSCODE: parsing.OptionalValueType(int) + }) + + def __init__(self, **kwargs): + self.client_name = '' + self.client_version = '' + self.passcode = 0 + super(DaideUser, self).__init__(**kwargs) |