diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-11-30 04:39:50 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-11-30 04:39:50 +0100 |
commit | 1b9fb005faa6087f6b39da0bf7b634324081e890 (patch) | |
tree | ed2c6c96858f1d7487bb773c305ec3396356894e /mu4web/user | |
parent | Fix crash on invalid username. (diff) | |
download | mu4web-1b9fb005faa6087f6b39da0bf7b634324081e890.tar.gz mu4web-1b9fb005faa6087f6b39da0bf7b634324081e890.tar.xz |
Work.
Diffstat (limited to 'mu4web/user')
-rw-r--r-- | mu4web/user/__init__.py | 26 | ||||
-rw-r--r-- | mu4web/user/local.py | 11 | ||||
-rw-r--r-- | mu4web/user/pam.py | 6 |
3 files changed, 43 insertions, 0 deletions
diff --git a/mu4web/user/__init__.py b/mu4web/user/__init__.py new file mode 100644 index 0000000..490bcee --- /dev/null +++ b/mu4web/user/__init__.py @@ -0,0 +1,26 @@ +import os + + +class User: + def __init__(self, username: str): + self._username = username + self._authenticated = False + + # @property + def is_authenticated(self): + return self._authenticated + + # @property + def is_active(self): + return True + + # @property + def is_anonymous(self): + return False + + # @property + def get_id(self): + return self._username + + def validate(self, password: str) -> bool: + ... diff --git a/mu4web/user/local.py b/mu4web/user/local.py new file mode 100644 index 0000000..c4485ce --- /dev/null +++ b/mu4web/user/local.py @@ -0,0 +1,11 @@ +import password +from password import Passwords +from typing import cast +import os +from . import User + +passwords: Passwords = password.Passwords(cast(os.PathLike, 'passwords.json')) + +class LocalUser(User): + def validate(self, password: str) -> bool: + return passwords.validate(self._username, password) diff --git a/mu4web/user/pam.py b/mu4web/user/pam.py new file mode 100644 index 0000000..7942f3b --- /dev/null +++ b/mu4web/user/pam.py @@ -0,0 +1,6 @@ +from . import User +import pam + +class PamUser(User): + def validate(self, password): + return pam.authenticate(self._username, password) |