diff --git a/changelog.d/2057.bugfix.md b/changelog.d/2057.bugfix.md new file mode 100644 index 000000000..46379bdd5 --- /dev/null +++ b/changelog.d/2057.bugfix.md @@ -0,0 +1 @@ +Re-introduced admin room registration alerts that were accidentally removed in the OAuth2 update. diff --git a/src/api/client/account/register.rs b/src/api/client/account/register.rs index 5a65429a0..6d653fdd8 100644 --- a/src/api/client/account/register.rs +++ b/src/api/client/account/register.rs @@ -138,6 +138,26 @@ pub(crate) async fn register_route( }; debug_info!(%user_id, ?device, "New account created via legacy registration"); + // Only log if the user wasn't registered via an appservice. + if body.identity.is_none() { + let notice = if device.is_some() + && let Some(device_name) = body.initial_device_display_name.as_ref() + { + format!( + "New user \"{user_id}\" registered on this server from IP {client} and device \ + display name \"{device_name}\" via legacy registration", + ) + } else { + format!( + "New user \"{user_id}\" registered on this server from IP {client} via legacy \ + registration." + ) + }; + info!("{notice}"); + if services.server.config.admin_room_notices { + services.admin.notice(¬ice).await; + } + } Ok(assign!(register::v3::Response::new(user_id), { access_token: token.map(DeviceToken::into_token), diff --git a/src/web/pages/account/register.rs b/src/web/pages/account/register.rs index 4f5f4f11a..d49c02c55 100644 --- a/src/web/pages/account/register.rs +++ b/src/web/pages/account/register.rs @@ -7,7 +7,7 @@ use axum::{ routing::{get, on}, }; use conduwuit_api::client_ip::ClientIp; -use conduwuit_core::{config::TermsDocument, warn}; +use conduwuit_core::{config::TermsDocument, info, warn}; use conduwuit_service::{ mailer::messages, registration_tokens::ValidToken, @@ -536,6 +536,13 @@ async fn complete_registration( .mark_token_as_used(registration_token); } + let notice = format!("New user \"{user_id}\" registered on this server from IP {client}."); + + info!("{notice}"); + if services.server.config.admin_room_notices { + services.admin.notice(¬ice).await; + } + let user_session = UserSession { user_id, last_login: SystemTime::now() }; session_store