diff --git a/src/database/entities/user.rs b/src/database/entities/user.rs index ade3cb84..91001567 100644 --- a/src/database/entities/user.rs +++ b/src/database/entities/user.rs @@ -152,6 +152,17 @@ impl User { user.status = None; } + // If the user's status is `Presence::Invisible`, return it as `Presence::Offline` + if let Some(mut status) = user.status { + if let Some(presence) = status.presence { + if presence == Presence::Invisible { + status.presence = Some(Presence::Offline); + user.status = Some(status); + user.online = Some(False); + } + } + } + user.profile = None; user } diff --git a/src/routes/users/fetch_user.rs b/src/routes/users/fetch_user.rs index 387c0cf7..0876aeb4 100644 --- a/src/routes/users/fetch_user.rs +++ b/src/routes/users/fetch_user.rs @@ -16,15 +16,5 @@ pub async fn req(user: User, target: Ref) -> Result { Err(Error::MissingPermission)? } - // If the user's status is `Presence::Invisible`, return it as `Presence::Offline` - if let Some(mut status) = target.status { - if let Some(presence) = status.presence { - if presence == Presence::Invisible { - status.presence = Some(Presence::Offline); - target.status = Some(status); - } - } - } - Ok(json!(target.from(&user).with(perm))) }