From 3748d3e281904787808d94e50577cbd4675f7fe2 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 4 Sep 2018 10:42:39 +1000 Subject: [PATCH] UX: hide associate accounts if second factor is enabled Once second factor is enabled all login via associated accounts is banned showing this section just leads to confusion --- .../controllers/preferences/account.js.es6 | 8 +++++-- .../preferences-account-test.js.es6 | 21 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 test/javascripts/controllers/preferences-account-test.js.es6 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); +});