summaryrefslogtreecommitdiff
path: root/src/api/client_server
diff options
context:
space:
mode:
authorTimo Kösters <timo@koesters.xyz>2023-06-08 18:52:03 +0000
committerTimo Kösters <timo@koesters.xyz>2023-06-08 18:52:03 +0000
commit808b12f618b9fa9a2e9bf8cecdfdc60941cd492c (patch)
tree3c04cb41083d2b550189846245c3be5e8d31365c /src/api/client_server
parent422ee40107894758ec923d502bebd8843505a7d5 (diff)
parentfaa9208a3e484756f7e535ca0d51488fbf1e4dbe (diff)
downloadconduit-808b12f618b9fa9a2e9bf8cecdfdc60941cd492c.zip
Merge branch 'restricted' into 'next'
fix: restricted room error is now FORBIDDEN See merge request famedly/conduit!478
Diffstat (limited to 'src/api/client_server')
-rw-r--r--src/api/client_server/membership.rs11
-rw-r--r--src/api/client_server/session.rs2
2 files changed, 10 insertions, 3 deletions
diff --git a/src/api/client_server/membership.rs b/src/api/client_server/membership.rs
index cd26372..11e37e6 100644
--- a/src/api/client_server/membership.rs
+++ b/src/api/client_server/membership.rs
@@ -106,6 +106,7 @@ pub async fn join_room_by_id_or_alias_route(
);
servers.push(room_id.server_name().to_owned());
+
(servers, room_id)
}
Err(room_alias) => {
@@ -598,7 +599,7 @@ async fn join_room_by_id_helper(
info!("send_join finished");
if let Some(signed_raw) = &send_join_response.room_state.event {
- info!("There is a signed event. This room is probably using restricted joins");
+ info!("There is a signed event. This room is probably using restricted joins. Adding signature to our event");
let (signed_event_id, signed_value) =
match gen_event_id_canonical_json(signed_raw, &room_version_id) {
Ok(t) => t,
@@ -901,7 +902,13 @@ async fn join_room_by_id_helper(
Err(e) => e,
};
- if !restriction_rooms.is_empty() {
+ if !restriction_rooms.is_empty()
+ && servers
+ .iter()
+ .filter(|s| *s != services().globals.server_name())
+ .count()
+ > 0
+ {
info!(
"We couldn't do the join locally, maybe federation can help to satisfy the restricted join requirements"
);
diff --git a/src/api/client_server/session.rs b/src/api/client_server/session.rs
index b3328e4..8908fef 100644
--- a/src/api/client_server/session.rs
+++ b/src/api/client_server/session.rs
@@ -108,7 +108,7 @@ pub async fn login_route(body: Ruma<login::v3::Request>) -> Result<login::v3::Re
if !body.from_appservice {
return Err(Error::BadRequest(
ErrorKind::Forbidden,
- "Forbidden login type."
+ "Forbidden login type.",
));
};
let username = if let UserIdentifier::UserIdOrLocalpart(user_id) = identifier {