fix: account registration
parent
804d097a18
commit
366554630a
|
@ -86,14 +86,20 @@ pub fn register_route(
|
||||||
|
|
||||||
let is_guest = matches!(body.kind, Some(RegistrationKind::Guest));
|
let is_guest = matches!(body.kind, Some(RegistrationKind::Guest));
|
||||||
|
|
||||||
|
let mut missing_username = false;
|
||||||
|
|
||||||
// Validate user id
|
// Validate user id
|
||||||
let user_id = UserId::parse_with_server_name(
|
let user_id = UserId::parse_with_server_name(
|
||||||
if is_guest {
|
if is_guest {
|
||||||
utils::random_string(GUEST_NAME_LENGTH)
|
utils::random_string(GUEST_NAME_LENGTH)
|
||||||
} else {
|
} else {
|
||||||
body.username.clone().ok_or_else(|| {
|
body.username.clone().unwrap_or_else(|| {
|
||||||
Error::BadRequest(ErrorKind::MissingParam, "Missing username field.")
|
// If the user didn't send a username field, that means the client is just trying
|
||||||
})?
|
// the get an UIAA error to see available flows
|
||||||
|
missing_username = true;
|
||||||
|
// Just give the user a random name. He won't be able to register with it anyway.
|
||||||
|
utils::random_string(GUEST_NAME_LENGTH)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
.to_lowercase(),
|
.to_lowercase(),
|
||||||
db.globals.server_name(),
|
db.globals.server_name(),
|
||||||
|
@ -106,7 +112,7 @@ pub fn register_route(
|
||||||
))?;
|
))?;
|
||||||
|
|
||||||
// Check if username is creative enough
|
// Check if username is creative enough
|
||||||
if db.users.exists(&user_id)? {
|
if !missing_username && db.users.exists(&user_id)? {
|
||||||
return Err(Error::BadRequest(
|
return Err(Error::BadRequest(
|
||||||
ErrorKind::UserInUse,
|
ErrorKind::UserInUse,
|
||||||
"Desired user ID is already taken.",
|
"Desired user ID is already taken.",
|
||||||
|
@ -138,6 +144,10 @@ pub fn register_route(
|
||||||
return Err(Error::Uiaa(uiaainfo));
|
return Err(Error::Uiaa(uiaainfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if missing_username {
|
||||||
|
return Err(Error::BadRequest(ErrorKind::MissingParam, "Missing username field."));
|
||||||
|
}
|
||||||
|
|
||||||
let password = if is_guest {
|
let password = if is_guest {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue