From f1b97a9e25dc87fb7944e76d8ec672e8c3af9fa9 Mon Sep 17 00:00:00 2001 From: Evie Viau Date: Mon, 10 Mar 2025 20:41:08 -0700 Subject: [PATCH] bugfix: truncate usernames on invite codes to 32 characters fixes #T148 --- src/routes/admin.rs | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/routes/admin.rs b/src/routes/admin.rs index 4e93d30..3e97993 100644 --- a/src/routes/admin.rs +++ b/src/routes/admin.rs @@ -343,14 +343,45 @@ pub async fn admin_invitecode( } let active_codes = match list_invite_codes(nats.clone(), token.clone(), false).await { - Ok(v) => v, + Ok(mut v) => { + for v in &mut v { + if let Some(used_by) = &v.used_by { + if used_by.len() > 32 { + v.used_by = Some(format!("{}...", &used_by[0..32])); + } + } + + if v.creator.len() > 32 { + v.creator = format!("{}...", &v.creator[0..32]); + } + } + + v + }, Err(e) => { return e.into_response(); } }; let used_codes = match list_invite_codes(nats.clone(), token.clone(), true).await { - Ok(v) => v.into_iter().map(|mut v| if v.used_at.is_none() { v.used_at = Some(String::from("unset")); v } else { v }).collect(), + Ok(v) => v.into_iter().map(|mut v| { + if let Some(used_by) = &v.used_by { + if used_by.len() > 32 { + v.used_by = Some(format!("{}...", &used_by[0..32])); + } + } + + if v.creator.len() > 32 { + v.creator = format!("{}...", &v.creator[0..32]); + } + + if v.used_at.is_none() { + v.used_at = Some(String::from("unset")); + v + } else { + v + } + }).collect(), Err(e) => { return e.into_response(); }