1
0
Fork 0
mirror of https://gitlab.com/famedly/conduit.git synced 2025-06-27 16:35:59 +00:00

Merge branch 'enforce-strict-user-ids' into 'next'

fix(registration): enforce the strict user ID grammar

Closes #516

See merge request famedly/conduit!756
This commit is contained in:
Matthias Ahouansou 2025-06-22 00:17:35 +00:00
commit 2b7e59bb29

View file

@ -25,7 +25,7 @@ const RANDOM_USER_ID_LENGTH: usize = 10;
/// Checks if a username is valid and available on this server. /// Checks if a username is valid and available on this server.
/// ///
/// Conditions for returning true: /// Conditions for returning true:
/// - The user id is not historical /// - The user id must be valid according to the strict grammar
/// - The server name of the user id matches this server /// - The server name of the user id matches this server
/// - No user or appservice on this server already claimed this username /// - No user or appservice on this server already claimed this username
/// ///
@ -40,7 +40,8 @@ pub async fn get_register_available_route(
) )
.ok() .ok()
.filter(|user_id| { .filter(|user_id| {
!user_id.is_historical() && user_id.server_name() == services().globals.server_name() user_id.validate_strict().is_ok()
&& user_id.server_name() == services().globals.server_name()
}) })
.ok_or(Error::BadRequest( .ok_or(Error::BadRequest(
ErrorKind::InvalidUsername, ErrorKind::InvalidUsername,
@ -92,7 +93,7 @@ pub async fn register_route(body: Ruma<register::v3::Request>) -> Result<registe
) )
.ok() .ok()
.filter(|user_id| { .filter(|user_id| {
!user_id.is_historical() user_id.validate_strict().is_ok()
&& user_id.server_name() == services().globals.server_name() && user_id.server_name() == services().globals.server_name()
}) })
.ok_or(Error::BadRequest( .ok_or(Error::BadRequest(