|
|
|
@ -1712,12 +1712,13 @@ async fn create_join_event(
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if event_content
|
|
|
|
|
let sign_join_event = event_content
|
|
|
|
|
.join_authorized_via_users_server
|
|
|
|
|
.map(|user| user.server_name() == services().globals.server_name())
|
|
|
|
|
.unwrap_or_default()
|
|
|
|
|
&& user_can_perform_restricted_join(&sender, room_id, &room_version_id).unwrap_or_default()
|
|
|
|
|
{
|
|
|
|
|
&& user_can_perform_restricted_join(&sender, room_id, &room_version_id).unwrap_or_default();
|
|
|
|
|
|
|
|
|
|
if sign_join_event {
|
|
|
|
|
ruma::signatures::hash_and_sign_event(
|
|
|
|
|
services().globals.server_name().as_str(),
|
|
|
|
|
services().globals.keypair(),
|
|
|
|
@ -1795,10 +1796,14 @@ async fn create_join_event(
|
|
|
|
|
.map(PduEvent::convert_to_outgoing_federation_event)
|
|
|
|
|
.collect(),
|
|
|
|
|
// Event field is required if the room version supports restricted join rules.
|
|
|
|
|
event: Some(
|
|
|
|
|
to_raw_value(&CanonicalJsonValue::Object(value))
|
|
|
|
|
.expect("To raw json should not fail since only change was adding signature"),
|
|
|
|
|
),
|
|
|
|
|
event: if sign_join_event {
|
|
|
|
|
Some(
|
|
|
|
|
to_raw_value(&CanonicalJsonValue::Object(value))
|
|
|
|
|
.expect("To raw json should not fail since only change was adding signature"),
|
|
|
|
|
)
|
|
|
|
|
} else {
|
|
|
|
|
None
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|