import { AuthenticationMethod, AuthenticationMethodsConfiguration } from "../configuration/schema/AuthenticationMethodsConfiguration"; function computeIsSingleFactorOnlyMode( configuration: AuthenticationMethodsConfiguration): boolean { if (!configuration) return false; const method: AuthenticationMethod = configuration.default_method; if (configuration.default_method == "two_factor") return false; if (configuration.per_subdomain_methods) { for (const key in configuration.per_subdomain_methods) { const method = configuration.per_subdomain_methods[key]; if (method == "two_factor") return false; } } return true; } export class MethodCalculator { static compute(config: AuthenticationMethodsConfiguration, subDomain: string) : AuthenticationMethod { if (config && config.per_subdomain_methods && subDomain in config.per_subdomain_methods) { return config.per_subdomain_methods[subDomain]; } return config.default_method; } static isSingleFactorOnlyMode(config: AuthenticationMethodsConfiguration) : boolean { return computeIsSingleFactorOnlyMode(config); } }