fix: join appservice room with alias

This commit is contained in:
Timo Kösters 2021-03-18 12:03:15 +01:00
parent a77fcd106e
commit a0fa0ee7a0
No known key found for this signature in database
GPG key ID: 24DA7517711A2BA4
2 changed files with 32 additions and 12 deletions

View file

@ -90,11 +90,23 @@ pub async fn get_alias_helper(
let aliases = registration
.get("namespaces")
.and_then(|ns| ns.get("aliases"))
.and_then(|users| users.get("regex"))
.and_then(|regex| regex.as_str())
.and_then(|regex| Regex::new(regex).ok());
.and_then(|aliases| aliases.as_sequence())
.map_or_else(Vec::new, |aliases| {
aliases
.iter()
.map(|aliases| {
aliases
.get("regex")
.and_then(|regex| regex.as_str())
.and_then(|regex| Regex::new(regex).ok())
})
.filter_map(|o| o)
.collect::<Vec<_>>()
});
if aliases.map_or(false, |aliases| aliases.is_match(room_alias.as_str()))
if aliases
.iter()
.any(|aliases| aliases.is_match(room_alias.as_str()))
&& db
.sending
.send_appservice_request(