diff --git a/app/assets/javascripts/discourse/controllers/preferences/account.js.es6 b/app/assets/javascripts/discourse/controllers/preferences/account.js.es6 index 554fbf30c63..b91f0e66ffa 100644 --- a/app/assets/javascripts/discourse/controllers/preferences/account.js.es6 +++ b/app/assets/javascripts/discourse/controllers/preferences/account.js.es6 @@ -87,8 +87,12 @@ export default Ember.Controller.extend( return userId !== this.get("currentUser.id"); }, - @computed() - canUpdateAssociatedAccounts() { + @computed("model.second_factor_enabled") + canUpdateAssociatedAccounts(secondFactorEnabled) { + if (secondFactorEnabled) { + return false; + } + return ( findAll(this.siteSettings, this.capabilities, this.site.isMobileDevice) .length > 0 diff --git a/test/javascripts/controllers/preferences-account-test.js.es6 b/test/javascripts/controllers/preferences-account-test.js.es6 new file mode 100644 index 00000000000..4272459d959 --- /dev/null +++ b/test/javascripts/controllers/preferences-account-test.js.es6 @@ -0,0 +1,21 @@ +moduleFor("controller:preferences/account"); + +QUnit.test("updating of associated accounts", function(assert) { + const controller = this.subject({ + siteSettings: { + enable_google_oauth2_logins: true + }, + model: Em.Object.create({ + second_factor_enabled: true + }), + site: Em.Object.create({ + isMobileDevice: false + }) + }); + + assert.equal(controller.get("canUpdateAssociatedAccounts"), false); + + controller.set("model.second_factor_enabled", false); + + assert.equal(controller.get("canUpdateAssociatedAccounts"), true); +});