pferd/PFERD/auth/__init__.py

30 lines
1.1 KiB
Python
Raw Normal View History

from configparser import SectionProxy
from typing import Callable, Dict
from ..config import Config
from .authenticator import Authenticator, AuthError, AuthLoadError, AuthSection # noqa: F401
2021-05-31 17:55:56 +02:00
from .credential_file import CredentialFileAuthenticator, CredentialFileAuthSection
from .keyring import KeyringAuthenticator, KeyringAuthSection
2022-01-15 16:23:37 +01:00
from .pass_ import PassAuthenticator, PassAuthSection
from .simple import SimpleAuthenticator, SimpleAuthSection
2021-05-15 18:27:16 +02:00
from .tfa import TfaAuthenticator
AuthConstructor = Callable[[
str, # Name (without the "auth:" prefix)
SectionProxy, # Authenticator's section of global config
Config, # Global config
], Authenticator]
AUTHENTICATORS: Dict[str, AuthConstructor] = {
2021-05-31 17:55:56 +02:00
"credential-file": lambda n, s, c:
2021-06-01 11:18:08 +02:00
CredentialFileAuthenticator(n, CredentialFileAuthSection(s), c),
2021-05-31 18:21:18 +02:00
"keyring": lambda n, s, c:
KeyringAuthenticator(n, KeyringAuthSection(s)),
2022-01-15 16:23:37 +01:00
"pass": lambda n, s, c:
PassAuthenticator(n, PassAuthSection(s)),
"simple": lambda n, s, c:
SimpleAuthenticator(n, SimpleAuthSection(s)),
"tfa": lambda n, s, c:
TfaAuthenticator(n),
}