You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: add Singpass as OIDC provider
* fix: adjust URL
* feat: add uuid column and generate JWKS script
* feat: place Singpass after email OTP login
* feat: add Singpass login step using Growthbook
* fix: reduce session TTL from 7 days to 12 hours (#1223)
* fix: adjust based on comments
* chore: fix types for userId
* chore: fix package-lock
* chore: completely remove SGID login functionality (#1209)
* chore: completely remove SGID login functionality
* chore: remove modalText
* feat: add frontend for Singpass authentication (#1213)
* feat: add frontend for Singpass authentication
* fix: adjust design based on chromatic feedback
* feat: update invitation email wording
* fix: update based on Copilot review
* chore: adjust based on comments
* chore: update based on comments
* chore: fix missing inviterName in mock data
* feat: add error handling for Singpass authentication (#1231)
* feat: add error handling for Singpass authentication
* chore: update from comments
* fix: rename getName to getUserProps
* chore: rename uuid to singpassUuid
* fix: update tests
* chore: update script to have extractable keys
* fix: remove Singpass error modal
* fix: force body-2 on button
* feat: add error infobox when not whitelisted
* chore: use form error message for blacklisted email
* fix: use switch statement and handle default for error
* chore: update wording and text size
* reduce TTL to 1 hour
* implement isSingpassEnabled function to streamline feature flag usage
* refactor: rename isSingpassEnabled to getIsSingpassEnabled and update usage in user router
* refactor: rename isSingpassEnabled to getIsSingpassEnabled for clarity and update usage in context
* remove
* add isAuthenticatedWithSingpass flag to session data and update session on successful authentication
* update default session TTL comment to reflect future change for Singpass launch
* refactor: simplify session TTL management by removing Singpass check and updating session configuration based on authentication status
* refactor: remove unused import of formatInTimeZone from email.router.ts
* feat: add mock feature flag for Singpass to enable testing
* update error msg
* add custom error message for Singpass authentication failure
* feat: add tooltip support to MenuItem component
* integrate Singpass status checks in user management modals and buttons
* add Singpass feature flag to user management modals for enhanced testing
* refactor: replace useIsSingpassEnabled with useIsSingpassEnabledForCriticalActions in user management components and hooks
* update mock feature flags for Singpass to include fallback value and clarify testing purpose
* fix test
* move back to original position
* make props required
* fix: do not reset TTL expiration
* fix
* remove unused props
* update session TTL configuration for VAPT environment
* add no-op updateConfig method for session in tests
* hardcode for vapt only
* remove unused improt
* refactor support url and email
* add getResourceStudioUrl function to generate resource-specific URLs
* add email templates
* implement email sending functions for publish alerts and update email template types
* remove unused import
* refactor email alert sending to use Promise.all for concurrent execution
* refactor: replace useIsSingpassEnabledForCriticalActions with useIsSingpassEnabled + introduce SingpassConditionalTooltip
* refactor: remove the need to pass in isSingpassEnabled
* refactor: remove the need to pass in isSingpassEnabled
* refactor: simplify Singpass feature check by removing deprecated function
* fix: remove conditional hook
* fix: add missing tooltip for Resend invite button
* fix: add backend validation to block resending of invites
* fix: add conditional isDisabled for isSingpassEnabled for button
* chore: rename getResourceStudioUrl to getStudioResourceUrl for clarity in email templates
* chore: return siteUrlPrefix instead of empty string
* fix: replace with getIsSingpassEnabled
* feat: add login alert email functionality and template
* fix: missing throw new Error("Invalid email format")
* enhance: move email sending out of DB TX
* refactor: only pass in isSingpassEnabled directly
* refactor: update Singpass feature flag usage in email router
* fix(test): breaking test from updating default singpass value
* test(auth.email): add tests for login alert email functionality
---------
Co-authored-by: dcshzj <[email protected]>
// FYI: Currently, we only send this email to users when Singpass has been disabled.
59
+
exportconstloginAlertTemplate=(
60
+
data: LoginAlertEmailTemplateData,
61
+
): EmailTemplate=>{
62
+
const{ recipientEmail }=data
63
+
return{
64
+
subject: `[Isomer Studio] Successful Login to Your Account`,
65
+
body: `<p>Hi ${recipientEmail},</p>
66
+
<p>We wanted to let you know that your account was accessed successfully.</p>
67
+
<p>If this was you, no action is needed.</p>
68
+
<p><strong>Note:</strong> You're receiving this notification because your account was logged into during a Singpass authentication outage. If you are not the one who logged in, please contact <a href="${ISOMER_SUPPORT_LINK}">${ISOMER_SUPPORT_EMAIL}</a> immediately.</p>
subject: `[Isomer Studio] ${resource.title} has been published`,
82
+
body: `<p>Hi ${recipientEmail},</p>
83
+
<p>You have successfully published "${resource.title}" on ${siteName}. You can access your published content on Isomer Studio at <a href="${studioResourceUrl}">${studioResourceUrl}</a>.</p>
84
+
<p><strong>Note:</strong> You're receiving this notification because content was published during a Singpass authentication outage. If you didn't authorize this publication, please contact <a href="${ISOMER_SUPPORT_LINK}">${ISOMER_SUPPORT_EMAIL}</a> immediately.</p>
subject: `[Isomer Studio] ${resource.title} has been published`,
98
+
body: `<p>Hi ${recipientEmail},</p>
99
+
<p>${publisherEmail} has published "${resource.title}" on ${siteName}. You can view the published content on Isomer Studio at <a href="${studioResourceUrl}">${studioResourceUrl}</a>.</p>
100
+
<p><strong>Note:</strong> You're receiving this notification because content was published during a Singpass authentication outage. As a site admin, we want to keep you informed of all publishing activities. If you have any concerns, please contact <a href="${ISOMER_SUPPORT_LINK}">${ISOMER_SUPPORT_EMAIL}</a> immediately.</p>
0 commit comments