2021-05-11 00:27:43 +02:00
|
|
|
from configparser import SectionProxy
|
|
|
|
from typing import Callable, Dict
|
|
|
|
|
|
|
|
from ..config import Config
|
2021-06-01 11:10:58 +02:00
|
|
|
from .authenticator import Authenticator, AuthError, AuthLoadError, AuthSection # noqa: F401
|
2021-05-31 17:55:56 +02:00
|
|
|
from .credential_file import CredentialFileAuthenticator, CredentialFileAuthSection
|
2021-05-25 13:32:00 +02:00
|
|
|
from .keyring import KeyringAuthenticator, KeyringAuthSection
|
2021-05-11 00:27:43 +02:00
|
|
|
from .simple import SimpleAuthenticator, SimpleAuthSection
|
2021-05-15 18:27:16 +02:00
|
|
|
from .tfa import TfaAuthenticator
|
2021-05-11 00:27:43 +02:00
|
|
|
|
|
|
|
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:
|
|
|
|
CredentialFileAuthenticator(n, CredentialFileAuthSection(s)),
|
2021-05-31 18:21:18 +02:00
|
|
|
"keyring": lambda n, s, c:
|
|
|
|
KeyringAuthenticator(n, KeyringAuthSection(s)),
|
2021-05-18 22:43:46 +02:00
|
|
|
"simple": lambda n, s, c:
|
2021-05-25 15:11:33 +02:00
|
|
|
SimpleAuthenticator(n, SimpleAuthSection(s)),
|
2021-05-18 22:43:46 +02:00
|
|
|
"tfa": lambda n, s, c:
|
2021-05-25 15:11:33 +02:00
|
|
|
TfaAuthenticator(n),
|
2021-05-11 00:27:43 +02:00
|
|
|
}
|