user.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from .database_model import database_model
  2. from .secret import secret
  3. class user(database_model):
  4. def __init__(self, id: int | None = None):
  5. super(id)
  6. self.__nick = None
  7. self.__password = None
  8. @property
  9. def nick(self) -> str:
  10. if self.__nick is None:
  11. raise Exception("Nick must be set, before access.")
  12. return self.__nick
  13. @nick.setter
  14. def nick(self, target: str) -> None:
  15. if type(target) != str:
  16. raise Exception("Nick of the user must be string.")
  17. self.__nick = target
  18. @property
  19. def password(self) -> secret:
  20. if self.__password is None:
  21. raise Exception("Password secret must be set, before access.")
  22. return self.__password
  23. @password.setter
  24. def password(self, target: secret):
  25. if type(target) != secret:
  26. raise Exception("Password of the user must be secret instance.")
  27. self.__password = target
  28. def clone(self) -> super:
  29. target = user(self.id)
  30. target.nick = self.nick
  31. target.secret = self.secret.clone()
  32. return target