From 471f4a2e7aba196cf8bdf4605723fd85038dc51f Mon Sep 17 00:00:00 2001 From: "Tizian.Breuch" Date: Fri, 5 Sep 2025 12:09:59 +0200 Subject: [PATCH] email response change --- Webshop.Api/Controllers/Auth/AuthController.cs | 2 ++ Webshop.Application/Services/Auth/AuthService.cs | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Webshop.Api/Controllers/Auth/AuthController.cs b/Webshop.Api/Controllers/Auth/AuthController.cs index c176a93..673cb1d 100644 --- a/Webshop.Api/Controllers/Auth/AuthController.cs +++ b/Webshop.Api/Controllers/Auth/AuthController.cs @@ -104,9 +104,11 @@ namespace Webshop.Api.Controllers.Auth if (result.Type == ServiceResultType.Success) { + // << KORREKTUR: Feste Erfolgsmeldung senden >> return Ok(new { Message = "Wenn ein Konto mit dieser E-Mail-Adresse existiert und noch nicht bestätigt wurde, wurde eine neue E-Mail gesendet." }); } + // Wenn die E-Mail bereits bestätigt war, ist dies ein 'BadRequest' aus Sicht des Workflows. return BadRequest(new { Message = result.ErrorMessage }); } diff --git a/Webshop.Application/Services/Auth/AuthService.cs b/Webshop.Application/Services/Auth/AuthService.cs index 86f2019..f4bf50f 100644 --- a/Webshop.Application/Services/Auth/AuthService.cs +++ b/Webshop.Application/Services/Auth/AuthService.cs @@ -83,12 +83,23 @@ namespace Webshop.Application.Services.Auth public async Task ResendEmailConfirmationAsync(string email) { var user = await _userManager.FindByEmailAsync(email); - if (user == null || await _userManager.IsEmailConfirmedAsync(user)) + + // Fall 1: Benutzer existiert nicht. Aus Sicherheitsgründen trotzdem OK zurückgeben. + if (user == null) { - // Aus Sicherheitsgründen immer eine positive Antwort geben return ServiceResult.Ok(); } + // Fall 2: Die E-Mail des Benutzers ist bereits bestätigt. + // Wir prüfen die Eigenschaft direkt auf dem frisch geladenen User-Objekt. + if (user.EmailConfirmed) + { + // In diesem Fall wollen wir einen Fehler an das Frontend geben, + // damit der Benutzer weiß, dass alles in Ordnung ist. + return ServiceResult.Fail(ServiceResultType.InvalidInput, "Diese E-Mail-Adresse ist bereits bestätigt."); + } + + // Fall 3: Benutzer existiert, ist aber nicht bestätigt -> E-Mail senden. await SendEmailConfirmationEmail(user); return ServiceResult.Ok(); }