mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-29 00:51:53 +08:00
refactoring
This commit is contained in:
@@ -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,
|
||||
),
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user