mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
The possible values for ACL policies are now: bypass, one_factor, two_factor, deny. This change also deprecate auth_methods because the method is now associated directly to a resource in the ACLs instead of a domain.
64 lines
2.3 KiB
TypeScript
64 lines
2.3 KiB
TypeScript
import { ACLConfiguration, complete as AclConfigurationComplete } from "./AclConfiguration";
|
|
import { AuthenticationBackendConfiguration, complete as AuthenticationBackendComplete } from "./AuthenticationBackendConfiguration";
|
|
import { NotifierConfiguration, complete as NotifierConfigurationComplete } from "./NotifierConfiguration";
|
|
import { RegulationConfiguration, complete as RegulationConfigurationComplete } from "./RegulationConfiguration";
|
|
import { SessionConfiguration, complete as SessionConfigurationComplete } from "./SessionConfiguration";
|
|
import { StorageConfiguration, complete as StorageConfigurationComplete } from "./StorageConfiguration";
|
|
import { TotpConfiguration, complete as TotpConfigurationComplete } from "./TotpConfiguration";
|
|
|
|
export interface Configuration {
|
|
access_control?: ACLConfiguration;
|
|
authentication_backend: AuthenticationBackendConfiguration;
|
|
default_redirection_url?: string;
|
|
logs_level?: string;
|
|
notifier?: NotifierConfiguration;
|
|
port?: number;
|
|
regulation?: RegulationConfiguration;
|
|
session?: SessionConfiguration;
|
|
storage?: StorageConfiguration;
|
|
totp?: TotpConfiguration;
|
|
}
|
|
|
|
export function complete(
|
|
configuration: Configuration):
|
|
[Configuration, string[]] {
|
|
|
|
const newConfiguration: Configuration = JSON.parse(
|
|
JSON.stringify(configuration));
|
|
const errors: string[] = [];
|
|
|
|
newConfiguration.access_control =
|
|
AclConfigurationComplete(
|
|
newConfiguration.access_control);
|
|
|
|
const [backend, error] =
|
|
AuthenticationBackendComplete(
|
|
newConfiguration.authentication_backend);
|
|
|
|
if (error) errors.push(error);
|
|
newConfiguration.authentication_backend = backend;
|
|
|
|
if (!newConfiguration.logs_level) {
|
|
newConfiguration.logs_level = "info";
|
|
}
|
|
|
|
const [notifier, notifierError] = NotifierConfigurationComplete(
|
|
newConfiguration.notifier);
|
|
newConfiguration.notifier = notifier;
|
|
if (notifierError) errors.push(notifierError);
|
|
|
|
if (!newConfiguration.port) {
|
|
newConfiguration.port = 8080;
|
|
}
|
|
|
|
newConfiguration.regulation = RegulationConfigurationComplete(
|
|
newConfiguration.regulation);
|
|
newConfiguration.session = SessionConfigurationComplete(
|
|
newConfiguration.session);
|
|
newConfiguration.storage = StorageConfigurationComplete(
|
|
newConfiguration.storage);
|
|
newConfiguration.totp = TotpConfigurationComplete(
|
|
newConfiguration.totp);
|
|
|
|
return [newConfiguration, errors];
|
|
} |