From a3f0c006b5fb5beab1704aad56777dcd98c42efb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonah=20Br=C3=BCchert?= Date: Thu, 28 Mar 2024 06:22:55 +0100 Subject: Add some type annotations --- accounts/models.py | 49 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 17 deletions(-) (limited to 'accounts/models.py') diff --git a/accounts/models.py b/accounts/models.py index 72c061d..fe6c500 100644 --- a/accounts/models.py +++ b/accounts/models.py @@ -1,8 +1,27 @@ from flask_login import UserMixin +from typing import Any, Optional + from accounts.utils.login import create_userid +class Service(object): + id: str + name: str + url: str + + def __init__(self, service_id: str, name: str, url: str) -> None: + self.id = service_id + self.name = name + self.url = url + + #: Wether the user has a separate password for this service. + self.changed = False + + def __repr__(self): + return '' % self.id + + class Account(UserMixin): """ An Account represents a complex ldap tree entry for spline users. @@ -10,7 +29,15 @@ class Account(UserMixin): """ _ready = False - def __init__(self, uid, mail, services=None, password=None, uidNumber=None): + uid: str + services: list[str] + password: Optional[str] + new_password_services: dict[str, tuple[Optional[str], Optional[str]]] + attributes: dict[Any, Any] + new_password_root: Optional[tuple[Optional[str], Optional[str]]] + + def __init__(self, uid: str, mail: str, services=None, + password: Optional[str] = None, uidNumber=None): self.uid = uid self.services = list() if services is None else services self.password = password @@ -25,10 +52,11 @@ class Account(UserMixin): def __repr__(self): return "" % self.uid - def reset_password(self, service): + def reset_password(self, service: str): self.new_password_services[service] = (None, None) - def change_password(self, new_password, old_password='', service=None): + def change_password(self, new_password: str, old_password='', + service=None): """ Changes a password for a given service. You have to use the UserBackend to make the changes permanent. If no service is given, @@ -43,7 +71,7 @@ class Account(UserMixin): def _set_attribute(self, key, value): self.attributes[key] = value - def change_email(self, new_mail): + def change_email(self, new_mail: str): """ Changes the mail address of an account. You have to use the AccountService class to make changes permanent. @@ -69,16 +97,3 @@ class Account(UserMixin): the cookie and used to identify the user. """ return create_userid(self.uid, self.password) - - -class Service(object): - def __init__(self, service_id, name, url): - self.id = service_id - self.name = name - self.url = url - - #: Wether the user has a separate password for this service. - self.changed = False - - def __repr__(self): - return '' % self.id -- cgit v1.2.3-1-g7c22