Handle more edge cases in ACL updates (#10279)

pull/28217/head
Janne Mareike Koschinski 2023-03-08 16:33:58 +01:00 committed by GitHub
parent 4ee57a36e0
commit 2b39eac7b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 4 deletions

View File

@ -219,12 +219,16 @@ export class RoomPermalinkCreator {
const getRegex = (hostname: string): RegExp =>
new RegExp("^" + utils.globToRegexp(hostname, false) + "$");
const denied = aclEvent.getContent<{ deny: string[] }>().deny || [];
denied.forEach((h) => bannedHostsRegexps.push(getRegex(h)));
const denied = aclEvent.getContent<{ deny: string[] }>().deny;
if (Array.isArray(denied)) {
denied.forEach((h) => bannedHostsRegexps.push(getRegex(h)));
}
const allowed = aclEvent.getContent<{ allow: string[] }>().allow || [];
const allowed = aclEvent.getContent<{ allow: string[] }>().allow;
allowedHostsRegexps = []; // we don't want to use the default rule here
allowed.forEach((h) => allowedHostsRegexps.push(getRegex(h)));
if (Array.isArray(denied)) {
allowed.forEach((h) => allowedHostsRegexps.push(getRegex(h)));
}
}
}
this.bannedHostsRegexps = bannedHostsRegexps;