Преглед изворни кода

Merge pull request #29823 from overleaf/ii-domain-capture-member-limit-check

[web] Domain capture member limit check

GitOrigin-RevId: bce12fc67aee9cbcc40a10e91585b39def4dfdf6
ilkin-overleaf пре 8 месеци
родитељ
комит
3f0dc71d6c

+ 3 - 0
services/web/app/src/Features/Errors/Errors.js

@@ -198,6 +198,8 @@ class SAMLRequestDeniedError extends SAMLAuthenticationError {
 
 class SAMLDomainCaptureManagedUserMissingEmailError extends OError {}
 
+class SAMLGroupMemberLimitReachedError extends OError {}
+
 class SAMLDomainCaptureManagedOptInUserMissingEmailError extends SAMLDomainCaptureError {}
 
 class SAMLSessionDataMissing extends BackwardCompatibleError {
@@ -385,6 +387,7 @@ module.exports = {
   SAMLRequestDeniedError,
   SAMLDomainCaptureRegisterError,
   SAMLDomainCaptureManagedUserMissingEmailError,
+  SAMLGroupMemberLimitReachedError,
   SAMLDomainCaptureManagedOptInUserMissingEmailError,
   SLInV2Error,
   ThirdPartyIdentityExistsError,

+ 1 - 0
services/web/frontend/extracted-translations.json

@@ -748,6 +748,7 @@
   "good_news_you_are_already_receiving_this_add_on_via_writefull": "",
   "group_admin": "",
   "group_audit_logs": "",
+  "group_has_no_licenses_available_error": "",
   "group_invitations": "",
   "group_invite_has_been_sent_to_email": "",
   "group_libraries": "",

+ 1 - 0
services/web/locales/en.json

@@ -963,6 +963,7 @@
   "group_admin": "Group admin",
   "group_audit_logs": "Group audit logs",
   "group_full": "This group is already full",
+  "group_has_no_licenses_available_error": "Sorry, your group has no licenses available. Please contact your administrator to request a license.",
   "group_invitations": "Group invitations",
   "group_invite_has_been_sent_to_email": "Group invite has been sent to <0>__email__</0>",
   "group_libraries": "Group Libraries",

+ 19 - 0
services/web/test/frontend/features/group-management/components/domain-capture.spec.tsx

@@ -117,6 +117,25 @@ describe('<DomainCapture />', function () {
       )
     })
 
+    it('renders group limit reached error message', function () {
+      const notificationsInstitution = [
+        { templateKey: 'notification_group_member_limit_reached' },
+      ]
+      cy.window().then(win => {
+        win.metaAttributesCache.set(
+          'ol-notificationsInstitution',
+          notificationsInstitution
+        )
+      })
+      cy.mount(<DomainCapture />)
+
+      cy.findByRole('alert').should(
+        'contain.text',
+        'Sorry, your group has no licenses available. ' +
+          'Please contact your administrator to request a license.'
+      )
+    })
+
     it('renders institution error message', function () {
       const errorMsg = 'Error message'
       const notificationsInstitution = [