From 684820c7c1438eb3035faee8a33eb8eb7f83968c Mon Sep 17 00:00:00 2001 From: Clubs Date: Mon, 28 Sep 2026 17:03:55 -0500 Subject: [PATCH] fix: check for user account status before attemping to process email change. --- changelog.d/2298.bugfix | 1 + src/admin/user/commands.rs | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 changelog.d/2298.bugfix diff --git a/changelog.d/2298.bugfix b/changelog.d/2298.bugfix new file mode 100644 index 000000000..a33c68ff5 --- /dev/null +++ b/changelog.d/2298.bugfix @@ -0,0 +1 @@ +"!admin users change-email" now verifies a user exists before attempting to change their email. Contributed by @Clubs. diff --git a/src/admin/user/commands.rs b/src/admin/user/commands.rs index 35b98f517..cda825563 100644 --- a/src/admin/user/commands.rs +++ b/src/admin/user/commands.rs @@ -1083,6 +1083,9 @@ pub(super) async fn get_user_by_email(&self, email: String) -> Result { pub(super) async fn change_email(&self, user_id: String, email: Option) -> Result { let user_id = parse_local_user_id(self.services, &user_id)?; + if matches!(self.services.users.status(&user_id).await, AccountStatus::NotFound) { + return Err!("This account does not exist."); + } let Ok(new_email) = email.map(Address::try_from).transpose() else { return Err!("Invalid email address."); };