|
|
|
|
@ -98,18 +98,19 @@ export class ConfigState {
|
|
|
|
|
const orRegexp = /\|\|/g;
|
|
|
|
|
const andRegexp = /&&/g;
|
|
|
|
|
|
|
|
|
|
// TODO: Allow combination of ANDs & ORs
|
|
|
|
|
if (orRegexp.test(key)) {
|
|
|
|
|
const keys = key.split('||').filter(k => !!k);
|
|
|
|
|
const keys = key.split('||').filter(Boolean);
|
|
|
|
|
|
|
|
|
|
if (keys.length !== 2) return false;
|
|
|
|
|
if (keys.length < 2) return false;
|
|
|
|
|
|
|
|
|
|
return getPolicy(keys[0].trim()) || getPolicy(keys[1].trim());
|
|
|
|
|
return keys.some(key => getPolicy(key.trim()));
|
|
|
|
|
} else if (andRegexp.test(key)) {
|
|
|
|
|
const keys = key.split('&&').filter(k => !!k);
|
|
|
|
|
const keys = key.split('&&').filter(Boolean);
|
|
|
|
|
|
|
|
|
|
if (keys.length !== 2) return false;
|
|
|
|
|
if (keys.length < 2) return false;
|
|
|
|
|
|
|
|
|
|
return getPolicy(keys[0].trim()) && getPolicy(keys[1].trim());
|
|
|
|
|
return keys.every(key => getPolicy(key.trim()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return getPolicy(key);
|
|
|
|
|
|