From ea7e68fc99bbc783277891b3408f07b7a70765be Mon Sep 17 00:00:00 2001 From: fallenbagel <98979876+fallenbagel@users.noreply.github.com> Date: Sat, 31 May 2025 17:10:13 +0800 Subject: [PATCH] fix(usersettings): exclude current user when checking for existing email (#1689) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This update modifies the user settings endpoint so that, when validating email uniqueness, the query excludes the current user’s own record (using id: Not(user.id)) --- server/routes/user/usersettings.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/routes/user/usersettings.ts b/server/routes/user/usersettings.ts index ab6bd7370..b3da5514f 100644 --- a/server/routes/user/usersettings.ts +++ b/server/routes/user/usersettings.ts @@ -18,6 +18,7 @@ import { ApiError } from '@server/types/error'; import { getHostname } from '@server/utils/getHostname'; import { Router } from 'express'; import net from 'net'; +import { Not } from 'typeorm'; import { canMakePermissionsChange } from '.'; const isOwnProfile = (): Middleware => { @@ -125,8 +126,9 @@ userSettingsRoutes.post< } const existingUser = await userRepository.findOne({ - where: { email: user.email }, + where: { email: user.email, id: Not(user.id) }, }); + if (oldEmail !== user.email && existingUser) { throw new ApiError(400, ApiErrorCode.InvalidEmail); }