Add email deduplication based on sanitize method before creating new claims (#1459)

This commit is contained in:
Leendert de Borst
2026-01-27 22:08:27 +01:00
committed by Leendert de Borst
parent cb90dc1199
commit 1e8ee2f168

View File

@@ -358,6 +358,10 @@ public class VaultController(ILogger<VaultController> logger, IAliasServerDbCont
/// <returns>A task representing the asynchronous operation.</returns>
private async Task UpdateUserEmailClaims(AliasServerDbContext context, AliasVaultUser user, List<string> newEmailAddresses)
{
// Deduplicate email addresses to prevent unique constraint violations when
// multiple credentials share the same private email address.
newEmailAddresses = newEmailAddresses.Select(EmailHelper.SanitizeEmail).Distinct().ToList();
// Get all existing user email claims.
var userOwnedEmailClaims = await context.UserEmailClaims
.Where(x => x.UserId == user.Id)