From 1f809d5b19421a637c3b0bc3e883ee86cb61cfe3 Mon Sep 17 00:00:00 2001 From: "Tizian.Breuch" Date: Tue, 29 Jul 2025 15:50:31 +0200 Subject: [PATCH] email raus --- .../SwaggerFilters/AddExampleSchemaFilter.cs | 4 ++-- .../DTOs/Customers/UpdateCustomerDto.cs | 4 ---- .../Services/Customers/CustomerService.cs | 24 +++++-------------- 3 files changed, 8 insertions(+), 24 deletions(-) diff --git a/Webshop.Api/SwaggerFilters/AddExampleSchemaFilter.cs b/Webshop.Api/SwaggerFilters/AddExampleSchemaFilter.cs index eb6f6da..3ed6dfa 100644 --- a/Webshop.Api/SwaggerFilters/AddExampleSchemaFilter.cs +++ b/Webshop.Api/SwaggerFilters/AddExampleSchemaFilter.cs @@ -201,14 +201,14 @@ namespace Webshop.Api.SwaggerFilters ["defaultBillingAddressId"] = new OpenApiNull() }; } - else if (type == typeof(UpdateCustomerDto)) // Dieses DTO verarbeitet jetzt alles + else if (type == typeof(UpdateCustomerDto)) { schema.Example = new OpenApiObject { ["firstName"] = new OpenApiString("Max"), ["lastName"] = new OpenApiString("Mustermann"), ["phoneNumber"] = new OpenApiString("+491701234567"), - ["email"] = new OpenApiString($"max.mustermann.neu.{uniqueId}@example.com"), + // ["email"] = new OpenApiString($"max.mustermann.neu.{uniqueId}@example.com"), // << ENTFERNT >> ["currentPassword"] = new OpenApiString("SecureCustomerPass123!"), ["defaultShippingAddressId"] = new OpenApiNull(), ["defaultBillingAddressId"] = new OpenApiNull() diff --git a/Webshop.Application/DTOs/Customers/UpdateCustomerDto.cs b/Webshop.Application/DTOs/Customers/UpdateCustomerDto.cs index b8724d3..7b65fb5 100644 --- a/Webshop.Application/DTOs/Customers/UpdateCustomerDto.cs +++ b/Webshop.Application/DTOs/Customers/UpdateCustomerDto.cs @@ -16,10 +16,6 @@ namespace Webshop.Application.DTOs.Customers [Phone(ErrorMessage = "Ungültiges Telefonnummernformat.")] public string? PhoneNumber { get; set; } // Telefonnummer des Benutzers - [EmailAddress(ErrorMessage = "Ungültiges E-Mail-Format.")] - public string? Email { get; set; } // E-Mail des Benutzers - - // Optional, aber gute Sicherheitspraxis: Aktuelles Passwort zur Bestätigung sensibler Änderungen [Required(ErrorMessage = "Aktuelles Passwort ist zur Bestätigung erforderlich.")] public string CurrentPassword { get; set; } = string.Empty; diff --git a/Webshop.Application/Services/Customers/CustomerService.cs b/Webshop.Application/Services/Customers/CustomerService.cs index 61cefca..a5cb81d 100644 --- a/Webshop.Application/Services/Customers/CustomerService.cs +++ b/Webshop.Application/Services/Customers/CustomerService.cs @@ -82,7 +82,7 @@ namespace Webshop.Application.Services.Customers var identityUser = await _userManager.FindByIdAsync(userId); if (identityUser == null) return (false, "Benutzerkonto nicht gefunden."); - // 1. Aktuelles Passwort prüfen + // 1. Aktuelles Passwort prüfen (Dies bleibt, da es eine gute Sicherheitspraxis für ALLE Profiländerungen ist) if (!await _userManager.CheckPasswordAsync(identityUser, profileDto.CurrentPassword)) { return (false, "Falsches aktuelles Passwort zur Bestätigung."); @@ -91,26 +91,14 @@ namespace Webshop.Application.Services.Customers // 2. Felder der Customer-Entität aktualisieren (FirstName, LastName, DEFAULT ADDRESS IDs) customer.FirstName = profileDto.FirstName; customer.LastName = profileDto.LastName; - // << NEU: DEFAULT ADDRESS IDs aktualisieren >> customer.DefaultShippingAddressId = profileDto.DefaultShippingAddressId; customer.DefaultBillingAddressId = profileDto.DefaultBillingAddressId; - // -- ENDE NEU -- - await _customerRepository.UpdateAsync(customer); + await _customerRepository.UpdateAsync(customer); // Speichert Änderungen im Customer-Profil - // 3. Felder des ApplicationUser (IdentityUser) aktualisieren (Email, PhoneNumber) + // 3. Telefonnummer im ApplicationUser aktualisieren (wenn anders und nicht leer) + // E-Mail-Logik wird HIER KOMPLETT ENTFERNT. bool identityUserChanged = false; - // E-Mail aktualisieren (wenn anders und nicht leer) - if (!string.IsNullOrEmpty(profileDto.Email) && identityUser.Email != profileDto.Email) - { - identityUser.Email = profileDto.Email; - identityUser.NormalizedEmail = _userManager.NormalizeEmail(profileDto.Email); - identityUser.UserName = profileDto.Email; - identityUser.NormalizedUserName = _userManager.NormalizeName(profileDto.Email); - identityUserChanged = true; - } - - // Telefonnummer aktualisieren (wenn anders und nicht leer) if (!string.IsNullOrEmpty(profileDto.PhoneNumber) && identityUser.PhoneNumber != profileDto.PhoneNumber) { identityUser.PhoneNumber = profileDto.PhoneNumber; @@ -123,11 +111,11 @@ namespace Webshop.Application.Services.Customers if (!updateResult.Succeeded) { var errors = string.Join(" ", updateResult.Errors.Select(e => e.Description)); - return (false, $"Fehler beim Aktualisieren der Kontaktdaten: {errors}"); + return (false, $"Fehler beim Aktualisieren der Telefonnummer: {errors}"); } } - return (true, "Profil und Kontaktdaten erfolgreich aktualisiert."); + return (true, "Profil und (optional) Telefonnummer erfolgreich aktualisiert."); } public async Task<(bool Success, string ErrorMessage)> ChangeEmailAsync(string userId, string newEmail, string currentPassword)