1
0
mirror of https://github.com/0rangebananaspy/authelia.git synced 2024-09-14 22:47:21 +07:00
authelia/server/src/lib/configuration/schema/AclConfiguration.ts
Clement Michaud c82f910da3 Refactor configuration to remove optional sections from minimal template
Also move tests from dedicated directory to source dir with .spec.ts extension
2018-08-09 23:52:53 +02:00

42 lines
972 B
TypeScript

export type ACLPolicy = "deny" | "allow";
export type ACLRule = {
domain: string;
policy: ACLPolicy;
resources?: string[];
};
export type ACLDefaultRules = ACLRule[];
export type ACLGroupsRules = { [group: string]: ACLRule[]; };
export type ACLUsersRules = { [user: string]: ACLRule[]; };
export interface ACLConfiguration {
default_policy?: ACLPolicy;
any?: ACLDefaultRules;
groups?: ACLGroupsRules;
users?: ACLUsersRules;
}
export function complete(configuration: ACLConfiguration): ACLConfiguration {
const newConfiguration: ACLConfiguration = (configuration)
? JSON.parse(JSON.stringify(configuration)) : {};
if (!newConfiguration.default_policy) {
newConfiguration.default_policy = "allow";
}
if (!newConfiguration.any) {
newConfiguration.any = [];
}
if (!newConfiguration.groups) {
newConfiguration.groups = {};
}
if (!newConfiguration.users) {
newConfiguration.users = {};
}
return newConfiguration;
}