|
|
|
|
@ -89,7 +89,7 @@ fn register_route(
@@ -89,7 +89,7 @@ fn register_route(
|
|
|
|
|
.unwrap_or_else(|| utils::random_string(GUEST_NAME_LENGTH)), |
|
|
|
|
data.hostname() |
|
|
|
|
)) |
|
|
|
|
.try_into() |
|
|
|
|
.try_into() |
|
|
|
|
{ |
|
|
|
|
Err(_) => { |
|
|
|
|
debug!("Username invalid"); |
|
|
|
|
@ -153,7 +153,7 @@ fn login_route(data: State<Data>, body: Ruma<login::Request>) -> MatrixResult<lo
@@ -153,7 +153,7 @@ fn login_route(data: State<Data>, body: Ruma<login::Request>) -> MatrixResult<lo
|
|
|
|
|
// Validate login method
|
|
|
|
|
let user_id = |
|
|
|
|
if let (login::UserInfo::MatrixId(mut username), login::LoginInfo::Password { password }) = |
|
|
|
|
(body.user.clone(), body.login_info.clone()) |
|
|
|
|
(body.user.clone(), body.login_info.clone()) |
|
|
|
|
{ |
|
|
|
|
if !username.contains(':') { |
|
|
|
|
username = format!("@{}:{}", username, data.hostname()); |
|
|
|
|
@ -230,8 +230,8 @@ fn get_pushrules_all_route() -> MatrixResult<get_pushrules_all::Response> {
@@ -230,8 +230,8 @@ fn get_pushrules_all_route() -> MatrixResult<get_pushrules_all::Response> {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[get(
|
|
|
|
|
"/_matrix/client/r0/user/<_user_id>/filter/<_filter_id>", |
|
|
|
|
data = "<body>" |
|
|
|
|
"/_matrix/client/r0/user/<_user_id>/filter/<_filter_id>", |
|
|
|
|
data = "<body>" |
|
|
|
|
)] |
|
|
|
|
fn get_filter_route( |
|
|
|
|
body: Ruma<get_filter::Request>, |
|
|
|
|
@ -262,8 +262,8 @@ fn create_filter_route(
@@ -262,8 +262,8 @@ fn create_filter_route(
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[put(
|
|
|
|
|
"/_matrix/client/r0/user/<_user_id>/account_data/<_type>", |
|
|
|
|
data = "<body>" |
|
|
|
|
"/_matrix/client/r0/user/<_user_id>/account_data/<_type>", |
|
|
|
|
data = "<body>" |
|
|
|
|
)] |
|
|
|
|
fn set_global_account_data_route( |
|
|
|
|
body: Ruma<set_global_account_data::Request>, |
|
|
|
|
@ -275,8 +275,8 @@ fn set_global_account_data_route(
@@ -275,8 +275,8 @@ fn set_global_account_data_route(
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[get(
|
|
|
|
|
"/_matrix/client/r0/user/<_user_id>/account_data/<_type>", |
|
|
|
|
data = "<body>" |
|
|
|
|
"/_matrix/client/r0/user/<_user_id>/account_data/<_type>", |
|
|
|
|
data = "<body>" |
|
|
|
|
)] |
|
|
|
|
fn get_global_account_data_route( |
|
|
|
|
body: Ruma<get_global_account_data::Request>, |
|
|
|
|
@ -317,7 +317,6 @@ fn set_displayname_route(
@@ -317,7 +317,6 @@ fn set_displayname_route(
|
|
|
|
|
data.displayname_set(&user_id, body.displayname.clone()); |
|
|
|
|
// TODO send a new m.room.member join event with the updated displayname
|
|
|
|
|
// TODO send a new m.presence event with the updated displayname
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -325,8 +324,8 @@ fn set_displayname_route(
@@ -325,8 +324,8 @@ fn set_displayname_route(
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[get(
|
|
|
|
|
"/_matrix/client/r0/profile/<user_id_raw>/displayname", |
|
|
|
|
data = "<body>" |
|
|
|
|
"/_matrix/client/r0/profile/<user_id_raw>/displayname", |
|
|
|
|
data = "<body>" |
|
|
|
|
)] |
|
|
|
|
fn get_displayname_route( |
|
|
|
|
data: State<Data>, |
|
|
|
|
@ -349,9 +348,7 @@ fn get_displayname_route(
@@ -349,9 +348,7 @@ fn get_displayname_route(
|
|
|
|
|
})); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MatrixResult(Ok(get_display_name::Response { |
|
|
|
|
displayname: None, |
|
|
|
|
})) |
|
|
|
|
MatrixResult(Ok(get_display_name::Response { displayname: None })) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[put("/_matrix/client/r0/profile/<_user_id>/avatar_url", data = "<body>")] |
|
|
|
|
@ -374,14 +371,12 @@ fn set_avatar_url_route(
@@ -374,14 +371,12 @@ fn set_avatar_url_route(
|
|
|
|
|
// TODO in the future when we can handle media uploads make sure that this url is our own server
|
|
|
|
|
// TODO also make sure this is valid mxc:// format (not only starting with it)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if body.avatar_url == "" { |
|
|
|
|
data.avatar_url_remove(&user_id); |
|
|
|
|
} else { |
|
|
|
|
data.avatar_url_set(&user_id, body.displayname.clone()); |
|
|
|
|
// TODO send a new m.room.member join event with the updated avatar_url
|
|
|
|
|
// TODO send a new m.presence event with the updated avatar_url
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MatrixResult(Ok(set_avatar_url::Response)) |
|
|
|
|
@ -409,9 +404,7 @@ fn get_avatar_url_route(
@@ -409,9 +404,7 @@ fn get_avatar_url_route(
|
|
|
|
|
})); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MatrixResult(Ok(get_avatar_url::Response { |
|
|
|
|
avatar_url: None, |
|
|
|
|
})) |
|
|
|
|
MatrixResult(Ok(get_avatar_url::Response { avatar_url: None })) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[get("/_matrix/client/r0/profile/<user_id_raw>", data = "<body>")] |
|
|
|
|
@ -527,8 +520,8 @@ fn get_alias_route(room_alias: String) -> MatrixResult<get_alias::Response> {
@@ -527,8 +520,8 @@ fn get_alias_route(room_alias: String) -> MatrixResult<get_alias::Response> {
|
|
|
|
|
})); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.try_into() |
|
|
|
|
.unwrap(); |
|
|
|
|
.try_into() |
|
|
|
|
.unwrap(); |
|
|
|
|
|
|
|
|
|
MatrixResult(Ok(get_alias::Response { |
|
|
|
|
room_id, |
|
|
|
|
@ -635,8 +628,8 @@ fn get_protocols_route(
@@ -635,8 +628,8 @@ fn get_protocols_route(
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[put(
|
|
|
|
|
"/_matrix/client/r0/rooms/<_room_id>/send/<_event_type>/<_txn_id>", |
|
|
|
|
data = "<body>" |
|
|
|
|
"/_matrix/client/r0/rooms/<_room_id>/send/<_event_type>/<_txn_id>", |
|
|
|
|
data = "<body>" |
|
|
|
|
)] |
|
|
|
|
fn create_message_event_route( |
|
|
|
|
data: State<Data>, |
|
|
|
|
@ -660,8 +653,8 @@ fn create_message_event_route(
@@ -660,8 +653,8 @@ fn create_message_event_route(
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[put(
|
|
|
|
|
"/_matrix/client/r0/rooms/<_room_id>/state/<_event_type>/<_state_key>", |
|
|
|
|
data = "<body>" |
|
|
|
|
"/_matrix/client/r0/rooms/<_room_id>/state/<_event_type>/<_state_key>", |
|
|
|
|
data = "<body>" |
|
|
|
|
)] |
|
|
|
|
fn create_state_event_for_key_route( |
|
|
|
|
data: State<Data>, |
|
|
|
|
@ -683,8 +676,8 @@ fn create_state_event_for_key_route(
@@ -683,8 +676,8 @@ fn create_state_event_for_key_route(
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[put(
|
|
|
|
|
"/_matrix/client/r0/rooms/<_room_id>/state/<_event_type>", |
|
|
|
|
data = "<body>" |
|
|
|
|
"/_matrix/client/r0/rooms/<_room_id>/state/<_event_type>", |
|
|
|
|
data = "<body>" |
|
|
|
|
)] |
|
|
|
|
fn create_state_event_for_empty_key_route( |
|
|
|
|
data: State<Data>, |
|
|
|
|
|