From 51639030f0adb6d09797222fd3689b5be2268221 Mon Sep 17 00:00:00 2001
From: Jessica Lawshe <5312836+lawshe@users.noreply.github.com>
Date: Thu, 20 Nov 2025 08:53:03 -0600
Subject: [PATCH] Merge pull request #29175 from
overleaf/jel-new-user-domain-capture
[web] Managed users enrollment before user is created via domain capture
GitOrigin-RevId: af8ad32a9100413eb913372400bdb4a342d6710f
---
services/web/app/src/Features/Errors/Errors.js | 3 +++
services/web/frontend/extracted-translations.json | 3 +++
services/web/frontend/js/utils/meta.ts | 2 ++
services/web/locales/en.json | 3 +++
4 files changed, 11 insertions(+)
diff --git a/services/web/app/src/Features/Errors/Errors.js b/services/web/app/src/Features/Errors/Errors.js
index 94a155fb3f..b19f4f4344 100644
--- a/services/web/app/src/Features/Errors/Errors.js
+++ b/services/web/app/src/Features/Errors/Errors.js
@@ -81,6 +81,8 @@ class SAMLCommonsUnavailable extends OError {
}
}
+class SAMLDomainCaptureError extends OError {}
+
class SAMLIdentityExistsError extends OError {
get i18nKey() {
return 'institution_account_tried_to_add_already_registered'
@@ -357,6 +359,7 @@ module.exports = {
SAMLAssertionAudienceMismatch,
SAMLAuthenticationRequiredError,
SAMLCommonsUnavailable,
+ SAMLDomainCaptureError,
SAMLIdentityExistsError,
SAMLAlreadyLinkedError,
SAMLEmailNotAffiliatedError,
diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json
index ef301a8a01..46b0a2ab86 100644
--- a/services/web/frontend/extracted-translations.json
+++ b/services/web/frontend/extracted-translations.json
@@ -447,6 +447,7 @@
"display": "",
"display_deleted_user": "",
"display_math": "",
+ "do_not_create_account": "",
"do_you_need_edit_access": "",
"do_you_want_to_change_your_primary_email_address_to": "",
"do_you_want_to_overwrite_it": "",
@@ -539,6 +540,7 @@
"email_does_not_belong_to_university": "",
"email_limit_reached": "",
"email_link_expired": "",
+ "email_managed_by_group_is": "",
"email_must_be_linked_to_institution": "",
"email_or_password_wrong_try_again": "",
"email_remove_by_date": "",
@@ -2240,6 +2242,7 @@
"youll_no_longer_need_to_remember_credentials": "",
"your_account_is_managed_by_admin_cant_join_additional_group": "",
"your_account_is_managed_by_your_group_admin": "",
+ "your_account_will_be_managed_by_group": "",
"your_add_on_has_been_cancelled_and_will_remain_active_until_your_billing_cycle_ends_on": "",
"your_affiliation_is_confirmed": "",
"your_browser_does_not_support_this_feature": "",
diff --git a/services/web/frontend/js/utils/meta.ts b/services/web/frontend/js/utils/meta.ts
index c5d8a5bca8..f1ad9523a1 100644
--- a/services/web/frontend/js/utils/meta.ts
+++ b/services/web/frontend/js/utils/meta.ts
@@ -104,6 +104,7 @@ export interface Meta {
'ol-compilesUserContentDomain': string
'ol-countryCode': PricingFormState['country']
'ol-couponCode': PricingFormState['coupon']
+ 'ol-createNewUserViaDomainCapture': boolean
'ol-createdAt': Date
'ol-csrfToken': string
'ol-currentInstitutionsWithLicence': Institution[]
@@ -166,6 +167,7 @@ export interface Meta {
'ol-i18n': { currentLangCode: string }
'ol-imageNames': ImageName[]
'ol-inactiveTutorials': string[]
+ 'ol-institutionEmail': string | undefined
'ol-institutionEmailNonCanonical': string | undefined
'ol-institutionLinked': InstitutionLink | undefined
'ol-inviteToken': string
diff --git a/services/web/locales/en.json b/services/web/locales/en.json
index 8b5ec7704e..94883969ad 100644
--- a/services/web/locales/en.json
+++ b/services/web/locales/en.json
@@ -574,6 +574,7 @@
"display": "Display",
"display_deleted_user": "Display deleted users",
"display_math": "Display math",
+ "do_not_create_account": "Do not create account",
"do_not_have_acct_or_do_not_want_to_link": "If you don’t have an __appName__ account, or if you don’t want to link to your __institutionName__ account, please click __clickText__.",
"do_not_link_accounts": "Don’t link accounts",
"do_you_need_edit_access": "Do you need edit access?",
@@ -685,6 +686,7 @@
"email_does_not_belong_to_university": "We don’t recognize that domain as being affiliated with your university. Please contact us to add the affiliation.",
"email_limit_reached": "You can have a maximum of <0>__emailAddressLimit__ email addresses0> on this account. To add another email address, please delete an existing one.",
"email_link_expired": "Email link expired, please request a new one.",
+ "email_managed_by_group_is": "The email address that will be managed by your group is <0>__email__0>.",
"email_must_be_linked_to_institution": "As a member of __institutionName__, this email address can only be added via single sign-on on your <0>account settings0> page. Please add a different recovery email address.",
"email_or_password_wrong_try_again": "Your email or password is incorrect. Please try again.",
"email_or_password_wrong_try_again_or_reset": "Your email or password is incorrect. Please try again, or <0>set or reset your password0>.",
@@ -2794,6 +2796,7 @@
"your_account_is_managed_by_admin_cant_join_additional_group": "Your __appName__ account is managed by your current group admin (__admin__). This means you can’t join additional group subscriptions. <0>Read more about Managed Users.0>",
"your_account_is_managed_by_your_group_admin": "Your account is managed by your group admin. You can’t change or delete your email address.",
"your_account_is_suspended": "Your account is suspended",
+ "your_account_will_be_managed_by_group": "Your __appName__ account will be managed by __groupName__",
"your_add_on_has_been_cancelled_and_will_remain_active_until_your_billing_cycle_ends_on": "Your add-on has been cancelled and will remain active until your billing cycle ends on __nextBillingDate__",
"your_affiliation_is_confirmed": "Your <0>__institutionName__0> affiliation is confirmed.",
"your_browser_does_not_support_this_feature": "Sorry, your browser doesn’t support this feature. Please update your browser to its latest version.",