Skip to content

[PM-36011] feat: add member email change notification email#7990

Draft
jrmccannon wants to merge 3 commits into
mainfrom
jmccannon/ac/pm-36011-member-email-change-notification
Draft

[PM-36011] feat: add member email change notification email#7990
jrmccannon wants to merge 3 commits into
mainfrom
jmccannon/ac/pm-36011-member-email-change-notification

Conversation

@jrmccannon

Copy link
Copy Markdown
Contributor

🎟️ Tracking

https://bitwarden.atlassian.net/browse/PM-36011

📔 Objective

Adds the "Your Bitwarden account email was updated" notification email (part of PM-28365), built with the IMailer / MJML pipeline: view model, mail class, MJML source, compiled templates, and a render test.

Sending isn't wired up yet. Hero asset (spot-enterprise-gear.svg) is added in bitwarden/assets#28.

TODO: once #7964 (PM-38926) merges, wire up the sending side effect in the v2 UpdateOrganizationUser command.

@jrmccannon jrmccannon added the ai-review Request a Claude code review label Jul 15, 2026
@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

🤖 Bitwarden Claude Code Review

Overall Assessment: APPROVE

Reviewed the new "member email changed" notification email: view model (MemberEmailChangedNotificationView / MemberEmailChangedNotificationMail), MJML source, compiled HTML/text templates, and a render test. The change follows the existing IMailer/BaseMail + Handlebars conventions used by sibling AdminConsole mailers, and the referenced MJML components (mj-bw-ac-hero, mj-bw-ac-learn-more-footer, head/footer includes) all exist. The .hbs files embed via the existing **\*.hbs glob and their namespace matches the folder path, so template resolution by GetType().FullName works as verified by the render test.

No security or correctness issues found. {{NewEmail}} uses double-stache Handlebars interpolation, which HTML-escapes by default, so the user-supplied email value cannot inject markup. Sending is intentionally not wired up yet (tracked as a follow-up per the PR description), and the header-asset TODO(PM-36011) is intentional and tracked.

Code Review Details

No findings.

@codecov

codecov Bot commented Jul 15, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 50.00000% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 62.12%. Comparing base (14fee75) to head (b118fb3).
⚠️ Report is 19 commits behind head on main.

Files with missing lines Patch % Lines
...EmailChanged/MemberEmailChangedNotificationView.cs 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7990      +/-   ##
==========================================
- Coverage   66.13%   62.12%   -4.02%     
==========================================
  Files        2256     2285      +29     
  Lines       99392    99668     +276     
  Branches     8983     9016      +33     
==========================================
- Hits        65732    61916    -3816     
- Misses      31409    35577    +4168     
+ Partials     2251     2175      -76     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-review Request a Claude code review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant