diff --git a/app/assets/javascripts/discourse/app/controllers/invites-show.js b/app/assets/javascripts/discourse/app/controllers/invites-show.js index 384b7da3d7..f7cf803380 100644 --- a/app/assets/javascripts/discourse/app/controllers/invites-show.js +++ b/app/assets/javascripts/discourse/app/controllers/invites-show.js @@ -107,8 +107,9 @@ export default Controller.extend( ) shouldDisplayForm(externalAuthsOnly, authOptions, emailValidationFailed) { return ( - this.siteSettings.enable_local_logins || - (externalAuthsOnly && authOptions && !emailValidationFailed) + (this.siteSettings.enable_local_logins || + (externalAuthsOnly && authOptions && !emailValidationFailed)) && + !this.siteSettings.enable_discourse_connect ); }, diff --git a/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js b/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js index 472e9cb50c..bba5f57c05 100644 --- a/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js +++ b/app/assets/javascripts/discourse/tests/acceptance/invite-accept-test.js @@ -217,6 +217,23 @@ acceptance( } ); +acceptance( + "Invite accept when DiscourseConnect SSO is enabled and local login is enabled (bad config)", + function (needs) { + needs.settings({ + enable_local_logins: true, + enable_discourse_connect: true, + }); + + test("invite link", async function (assert) { + preloadInvite({ link: true }); + + await visit("/invites/myvalidinvitetoken"); + assert.ok(!exists("form"), "does not display the form"); + }); + } +); + acceptance("Invite link with authentication data", function (needs) { needs.settings({ enable_local_logins: false });