1
0
Fork 0
mirror of https://forgejo.ellis.link/continuwuation/continuwuity.git synced 2025-09-15 17:26:58 +00:00

fix(!1014): Don't prematurely return during registration

This commit is contained in:
nexy7574 2025-09-11 17:21:20 +01:00 committed by nex
parent 81b6b3547c
commit d9d0d1a465

View file

@ -405,41 +405,51 @@ pub(crate) async fn register_route(
) )
.await?; .await?;
if (!is_guest && body.inhibit_login) // if (!is_guest && body.inhibit_login)
// || body
// .appservice_info
// .as_ref()
// .is_some_and(|appservice| appservice.registration.device_management)
// {
// return Ok(register::v3::Response {
// access_token: None,
// user_id,
// device_id: None,
// refresh_token: None,
// expires_in: None,
// });
// }
// Generate new device id if the user didn't specify one
let no_device = body.inhibit_login
|| body || body
.appservice_info .appservice_info
.as_ref() .as_ref()
.is_some_and(|appservice| appservice.registration.device_management) .is_some_and(|aps| aps.registration.device_management);
{ let (token, device) = if !no_device {
return Ok(register::v3::Response { // Don't create a device for inhibited logins
access_token: None, let device_id = if is_guest { None } else { body.device_id.clone() }
user_id, .unwrap_or_else(|| utils::random_string(DEVICE_ID_LENGTH).into());
device_id: None,
refresh_token: None,
expires_in: None,
});
}
// Generate new device id if the user didn't specify one // Generate new token for the device
let device_id = if is_guest { None } else { body.device_id.clone() } let new_token = utils::random_string(TOKEN_LENGTH);
.unwrap_or_else(|| utils::random_string(DEVICE_ID_LENGTH).into());
// Generate new token for the device // Create device for this account
let token = utils::random_string(TOKEN_LENGTH); services
.users
// Create device for this account .create_device(
services &user_id,
.users &device_id,
.create_device( &new_token,
&user_id, body.initial_device_display_name.clone(),
&device_id, Some(client.to_string()),
&token, )
body.initial_device_display_name.clone(), .await?;
Some(client.to_string()), debug_info!(%user_id, %device_id, "User account was created");
) (Some(new_token), Some(device_id))
.await?; } else {
(None, None)
debug_info!(%user_id, %device_id, "User account was created"); };
let device_display_name = body.initial_device_display_name.as_deref().unwrap_or(""); let device_display_name = body.initial_device_display_name.as_deref().unwrap_or("");
@ -583,9 +593,9 @@ pub(crate) async fn register_route(
} }
Ok(register::v3::Response { Ok(register::v3::Response {
access_token: Some(token), access_token: token,
user_id, user_id,
device_id: Some(device_id), device_id: device,
refresh_token: None, refresh_token: None,
expires_in: None, expires_in: None,
}) })