refactoring

This commit is contained in:
Maxim Devaev
2025-02-09 23:20:28 +02:00
parent 302e7c2877
commit 97b405297b
4 changed files with 44 additions and 44 deletions

View File

@@ -79,12 +79,12 @@ def main(argv: (list[str] | None)=None) -> None:
expire=config.auth.expire,
unauth_paths=([] if config.prometheus.auth.enabled else ["/export/prometheus/metrics"]),
internal_type=config.auth.internal.type,
internal_kwargs=config.auth.internal._unpack(ignore=["type", "force_users"]),
force_internal_users=config.auth.internal.force_users,
int_type=config.auth.internal.type,
int_kwargs=config.auth.internal._unpack(ignore=["type", "force_users"]),
force_int_users=config.auth.internal.force_users,
external_type=config.auth.external.type,
external_kwargs=(config.auth.external._unpack(ignore=["type"]) if config.auth.external.type else {}),
ext_type=config.auth.external.type,
ext_kwargs=(config.auth.external._unpack(ignore=["type"]) if config.auth.external.type else {}),
totp_secret_path=config.auth.totp.secret.file,
),

View File

@@ -56,12 +56,12 @@ class AuthManager: # pylint: disable=too-many-instance-attributes
expire: int,
unauth_paths: list[str],
internal_type: str,
internal_kwargs: dict,
force_internal_users: list[str],
int_type: str,
int_kwargs: dict,
force_int_users: list[str],
external_type: str,
external_kwargs: dict,
ext_type: str,
ext_kwargs: dict,
totp_secret_path: str,
) -> None:
@@ -80,19 +80,19 @@ class AuthManager: # pylint: disable=too-many-instance-attributes
for path in self.__unauth_paths:
get_logger().warning("Authorization is disabled for API %r", path)
self.__internal_service: (BaseAuthService | None) = None
self.__int_service: (BaseAuthService | None) = None
if enabled:
self.__internal_service = get_auth_service_class(internal_type)(**internal_kwargs)
self.__int_service = get_auth_service_class(int_type)(**int_kwargs)
get_logger().info("Using internal auth service %r",
self.__internal_service.get_plugin_name())
self.__int_service.get_plugin_name())
self.__force_internal_users = force_internal_users
self.__force_int_users = force_int_users
self.__external_service: (BaseAuthService | None) = None
if enabled and external_type:
self.__external_service = get_auth_service_class(external_type)(**external_kwargs)
self.__ext_service: (BaseAuthService | None) = None
if enabled and ext_type:
self.__ext_service = get_auth_service_class(ext_type)(**ext_kwargs)
get_logger().info("Using external auth service %r",
self.__external_service.get_plugin_name())
self.__ext_service.get_plugin_name())
self.__totp_secret_path = totp_secret_path
@@ -112,7 +112,7 @@ class AuthManager: # pylint: disable=too-many-instance-attributes
assert user == user.strip()
assert user
assert self.__enabled
assert self.__internal_service
assert self.__int_service
if self.__totp_secret_path:
with open(self.__totp_secret_path) as file:
@@ -124,10 +124,10 @@ class AuthManager: # pylint: disable=too-many-instance-attributes
return False
passwd = passwd[:-6]
if user not in self.__force_internal_users and self.__external_service:
service = self.__external_service
if user not in self.__force_int_users and self.__ext_service:
service = self.__ext_service
else:
service = self.__internal_service
service = self.__int_service
pname = service.get_plugin_name()
ok = (await service.authorize(user, passwd))
@@ -237,7 +237,7 @@ class AuthManager: # pylint: disable=too-many-instance-attributes
@aiotools.atomic_fg
async def cleanup(self) -> None:
if self.__enabled:
assert self.__internal_service
await self.__internal_service.cleanup()
if self.__external_service:
await self.__external_service.cleanup()
assert self.__int_service
await self.__int_service.cleanup()
if self.__ext_service:
await self.__ext_service.cleanup()