feat(admin): show full User.Email + UserEmails on duplicate-account detail#691
Merged
Merged
Conversation
…etail The duplicate-account Detail page only rendered the conflict-matched EmailSources subset, so an admin couldn't see each account's complete email footprint when deciding which to keep. Surface the full picture per account: the raw User.Email Identity column plus every UserEmails row (with Primary/Verified/Google/Provider badges). The data was already loaded via UserInfo; the controller now reuses that fetch and maps it into the view model. The shared conflicting email stays in the top "Email Conflict" card, so the dropped EmailSources subset loses no context. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Reviewed commit fb78006 — no issues found. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
On
/Admin/DuplicateAccounts/Detail, the per-account "Email sources" list only showed the emails that matched the conflict —DuplicateAccountServicebuildsEmailSourcesper shared email, so it's just the overlapping subset, not each account's full email footprint. An admin resolving a duplicate couldn't see all of an account's email rows.Change
Surface the complete email picture for both Account A and Account B:
User.EmailIdentity column (UserInfo.IdentityEmailColumn).UserEmailsrow, each tagged with badges: Primary / Verified|Unverified / Google / Provider.The data was already loaded via
UserInfo; the controller now reuses that fetch (no extra DB round-trip —BuildProfileCardAsynctakes the already-fetchedUserInfo) and maps it into the view model. The shared conflicting email remains in the top "Email Conflict" card, so dropping the redundantEmailSourcessubset loses no context.Files
AdminDuplicateAccountsController.cs— fetchUserInfoonce per account, reuse for the profile card, populate new fields via aMapEmailshelper.AdminViewModels.cs— replaceAccount1/2EmailSourceswithAccount1/2IdentityEmail+Account1/2Emails; addDuplicateAccountEmailRowViewModel.Detail.cshtml— render User.Email + the full UserEmails list with badges per account.The Index page's
EmailSourcesusage is untouched.Verification
dotnet build src/Humans.Web— 0 errors (Razor view compiles).🤖 Generated with Claude Code