email raus

This commit is contained in:
Tizian.Breuch
2025-07-29 15:50:31 +02:00
parent 0068ee106b
commit 1f809d5b19
3 changed files with 8 additions and 24 deletions

View File

@@ -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;

View File

@@ -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)