mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
Prior version of configuration file can be used, the authentication methods will be set to default values (two_factor as default method).
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { ACLConfiguration } from "../Configuration";
|
|
import { ObjectCloner } from "../../utils/ObjectCloner";
|
|
|
|
const DEFAULT_POLICY = "deny";
|
|
|
|
function adaptDefaultPolicy(configuration: ACLConfiguration) {
|
|
if (!configuration.default_policy)
|
|
configuration.default_policy = DEFAULT_POLICY;
|
|
if (configuration.default_policy != "deny" && configuration.default_policy != "allow")
|
|
configuration.default_policy = DEFAULT_POLICY;
|
|
}
|
|
|
|
function adaptAny(configuration: ACLConfiguration) {
|
|
if (!configuration.any || !(configuration.any.constructor === Array))
|
|
configuration.any = [];
|
|
}
|
|
|
|
function adaptGroups(configuration: ACLConfiguration) {
|
|
if (!configuration.groups || !(configuration.groups.constructor === Object))
|
|
configuration.groups = {};
|
|
}
|
|
|
|
function adaptUsers(configuration: ACLConfiguration) {
|
|
if (!configuration.users || !(configuration.users.constructor === Object))
|
|
configuration.users = {};
|
|
}
|
|
|
|
export class ACLAdapter {
|
|
static adapt(configuration: ACLConfiguration): ACLConfiguration {
|
|
if (!configuration) return;
|
|
|
|
const newConfiguration: ACLConfiguration = ObjectCloner.clone(configuration);
|
|
adaptDefaultPolicy(newConfiguration);
|
|
adaptAny(newConfiguration);
|
|
adaptGroups(newConfiguration);
|
|
adaptUsers(newConfiguration);
|
|
return newConfiguration;
|
|
}
|
|
} |