pferd/PFERD/authenticators/__init__.py
2021-05-15 18:27:16 +02:00

23 lines
782 B
Python

from configparser import SectionProxy
from typing import Callable, Dict
from ..authenticator import Authenticator, AuthSection
from ..conductor import TerminalConductor
from ..config import Config
from .simple import SimpleAuthenticator, SimpleAuthSection
from .tfa import TfaAuthenticator
AuthConstructor = Callable[[
str, # Name (without the "auth:" prefix)
SectionProxy, # Authenticator's section of global config
Config, # Global config
TerminalConductor, # Global conductor instance
], Authenticator]
AUTHENTICATORS: Dict[str, AuthConstructor] = {
"simple": lambda n, s, c, t:
SimpleAuthenticator(n, SimpleAuthSection(s), c, t),
"tfa": lambda n, s, c, t:
TfaAuthenticator(n, AuthSection(s), c, t),
}