Adding Email Unsubscribe Page#264
Conversation
…/api/emails/generators/IntersectionNotificationSummaryEmailGenerator.java Co-authored-by: Matt Cook <mattheworion.cook@gmail.com>
…com/CDOT-CV/jpo-cvmanager into intersection-api-email-generation-1
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 51 out of 52 changed files in this pull request and generated 6 comments.
Comments suppressed due to low confidence (1)
webapp/src/Unsubscribe.test.tsx:16
Unsubscribe.test.tsxis rendering the MUIUnsubscribeicon instead of the app's/unsubscribepage component. This makes the snapshot meaningless for the feature and would miss regressions in the actual unsubscribe flow. Import and render the localUnsubscribecomponent from./Unsubscribe(or the correct path) instead of@mui/icons-material.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 51 out of 52 changed files in this pull request and generated 5 comments.
Comments suppressed due to low confidence (1)
webapp/src/Unsubscribe.test.tsx:16
- The snapshot test is rendering MUI’s
Unsubscribeicon (@mui/icons-material) instead of the app’sUnsubscribepage component (./Unsubscribe). This makes the snapshot meaningless and won’t catch regressions in the unsubscribe flow. Import and render the page component (and provide any required router params/query string in the test).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
I am wondering if it would be worth it to manage intersection subscriptions by organization, so a user who is an admin in one org and user in another could only subscribe to support requests in the first org? |
This reverts commit 930ba8f.
mcook42
left a comment
There was a problem hiding this comment.
I'm still working through this review. There is a lot of new code and some more complex logic to review, so I'll need to come back another time to finish the rest of my review. Here are my comments so far
PR Details
Description
Emails generated by the Intersection API include an unsubscribe url. This PR adds the "unauthenticated" webapp page /unsubscribe, which authenticates the user using a signed JWT token generated by the intersection API and embedded in the unsubscribe url. This same page now also replaces the previous notification user settings page.
required_roleis a new field in the email_type object, denoting what user role is required to receive that type of notificationHow Has This Been Tested?
2026-04-21.13-21-11.mp4
This was tested using the following steps:
Types of changes
Checklist: