Fix errors reported by mypy

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2025-10-13 12:45:51 +02:00
commit bfd0544ff8
13 changed files with 68 additions and 71 deletions

View file

@ -54,7 +54,7 @@ class Auth(AuthBase): # export
def __init__(self, conf: Config):
super().__init__(conf)
self.___users: Optional[dict[str, User]] = None
self.___users: Optional[dict[str, UserBase]] = None
self.___user_by_email: Optional[dict[str, User]] = None
self.__groups = None
self.__current_user: User|None = None
@ -66,9 +66,9 @@ class Auth(AuthBase): # export
return bind(self.conf)
@property
def __users(self) -> User:
def __users(self) -> dict[str, UserBase]:
if self.___users is None:
ret: dict[str, User] = {}
ret: dict[str, UserBase] = {}
ret_by_email: dict[str, User] = {}
for res in self.__conn.find(
self.__user_base_dn,
@ -101,40 +101,40 @@ class Auth(AuthBase): # export
slog(WARNING, f'Exception {e}')
raise
continue
for user in self.__dummy.users.values():
ret[user.name] = user
for dummy_user in self.__dummy.users.values():
ret[dummy_user.name] = dummy_user
self.___users = ret
self.___user_by_email = ret_by_email
return self.___users
@property
def __user_by_email(self) -> User:
def __user_by_email(self) -> dict[str, UserBase]:
if self.___user_by_email is None:
self.__users
return self.___user_by_email
return self.___user_by_email # type: ignore # We are sure that ___user_by_email is not None at this point
def _access(self, what: str, access_type: Optional[Access], who: User|GroupBase|None) -> bool: # type: ignore
slog(WARNING, f'Returning False for {access_type} access to resource {what} by {who}')
return False
def _user(self, name) -> User:
def _user(self, name) -> UserBase:
try:
return self.__users[name]
except:
slog(ERR, f'No such user: "{name}"')
raise
def _user_by_email(self, email: str) -> User:
def _user_by_email(self, email: str) -> UserBase:
return self.__user_by_email[email]
def _current_user(self) -> User:
raise NotImplementedError
def _users(self) -> list[User]:
def _users(self) -> dict[str, UserBase]:
return self.__users
def _projects(self, name, flags: ProjectFlags) -> list[str]:
if flags & ProjectFlags.Contributing:
# TODO: Ask LDAP
pass
return None
slog(WARNING, f'Querying LDAP for projects a user contributes to is not implemented, ignoring')
return []