diff --git a/app/components/account-settings/security/multi-factor-auth/index.hbs b/app/components/account-settings/security/multi-factor-auth/index.hbs
index 83aa05589..0d00cb3e4 100644
--- a/app/components/account-settings/security/multi-factor-auth/index.hbs
+++ b/app/components/account-settings/security/multi-factor-auth/index.hbs
@@ -1,143 +1,128 @@
-
-
+
+
{{t 'multiFactorAuth'}}
-
-
- {{t 'mfaDescription'}}
-
-
- {{t 'mfaSelect'}}
-
-
-
-
-
-
-
- {{#each this.mfas.records as |mfa|}}
-
-
-
-
-
-
- {{mfa.display}}
-
- {{#if mfa.enabled}}
-
- {{/if}}
-
-
-
- {{#if mfa.isApp}}
-
- {{t 'mfaAppDesc'}}
-
-
-
- {{/if}}
-
- {{#if mfa.isEmail}}
-
- {{t 'mfaEmailDesc'}}
-
- {{/if}}
-
-
- |
-
-
-
- {{#if mfa.enabled}}
- {{#if this.user.canDisableMfa}}
-
- {{/if}}
- {{else}}
-
- {{/if}}
-
- |
-
- {{/each}}
-
-
-
- {{#unless this.user.canDisableMfa}}
-
-
-
-
-
- {{t 'disableMFADenied'}}
-
- {{#if this.me.org.is_owner}}
-
- {{t 'disableThisIn'}}
-
-
- {{t 'organizationSettings'}}
-
-
+
+
+
{{t 'mfaDescription'}}
+
+
{{t 'mfaSelect'}}
+
+ {{#if this.mfas.records.length}}
+
+ {{#each this.mfas.records as |mfa idx|}}
+ {{#if (gt idx 0)}}
+
+ {{/if}}
+
+
+
+
+
+ {{mfa.display}}
+
+ {{#if mfa.enabled}}
+
{{/if}}
-
-
-
- {{/unless}}
-
-
-
-
+
+
+ {{#if mfa.isApp}}
+
+ {{t 'mfaAppDesc'}}
+
+
+
+ {{#each this.mfaAppRecords as |record|}}
+
+
+ {{record.osTypes}}
+
+
+
+ {{record.app}}
+
+
+ {{/each}}
+
+ {{/if}}
+
+ {{#if mfa.isEmail}}
+
+ {{t 'mfaEmailDesc'}}
+
+ {{/if}}
+
+
+ {{#if mfa.enabled}}
+ {{#if this.user.canDisableMfa}}
+
+ {{t 'disable'}}
+
+ {{/if}}
+ {{else}}
+
+ {{t 'enable'}}
+
+ {{/if}}
+
+
+ {{/each}}
+
+ {{/if}}
+
+ {{#unless this.user.canDisableMfa}}
+
+
+
+
+ {{t 'disableMFADenied'}}
+
+ {{#if this.me.org.is_owner}}
+
+
+ {{t 'disableThisIn'}}
+
+
+
+ {{t 'organizationSettings'}}
+
+
+ {{/if}}
+
+
+ {{/unless}}
+
{{#if this.showMFADisableModal}}
{{else}}
-
-
+
{{t 'disableMFADenied'}}
-
+
{{/if}}
{{#if this.showDisableMFA}}
@@ -242,7 +229,7 @@
{{/if}}
{{#if this.showEmailOTPEnter}}
-
+
{{t 'modalCard.enableMFAEmail.description'}}
{{this.user.email}}
@@ -326,7 +313,7 @@
{{/if}}
{{#if this.staEmailVerifyActive}}
-
+
{{t 'modalCard.enableMFAEmail.description'}}
{{this.user.email}}
@@ -415,7 +402,7 @@
{{/if}}
{{#if this.showSwitchTOEmailEmailVerify}}
-
+
{{t 'modalCard.enableMFAEmail.description'}}
{{this.user.email}}
diff --git a/app/components/account-settings/security/multi-factor-auth/index.scss b/app/components/account-settings/security/multi-factor-auth/index.scss
index a7fa541cf..d22723f9f 100644
--- a/app/components/account-settings/security/multi-factor-auth/index.scss
+++ b/app/components/account-settings/security/multi-factor-auth/index.scss
@@ -1,26 +1,34 @@
-.mfa__method {
- border: 1px solid darken(#f3f5f8, 5%);
- background: #f3f5f8;
- padding: 0.7em 1em 1em;
+.mfa-records-container {
+ border: 1px solid var(--account-settings-security-mfa-border-color);
- h3 {
- margin-bottom: 0;
+ .mfa-enabled {
+ background-color: var(
+ --account-settings-security-mfa-alert-success-background
+ );
}
+}
+
+.alert-warn {
+ border: 1px solid var(--account-settings-security-mfa-alert-warn-border-color);
+ background-color: var(--account-settings-security-mfa-alert-warn-background);
+ color: var(--account-settings-security-mfa-alert-warn-text-color);
- label {
- cursor: default;
+ .alert-warn-link {
+ color: var(
+ --account-settings-security-mfa-alert-warn-text-color
+ ) !important;
}
}
-.mfa__method__enabled {
- background: #80c081;
- color: white;
- border-radius: 0.2em;
- padding: 0.3em 0.8em;
+.alert-success {
+ border: 1px solid
+ var(--account-settings-security-mfa-alert-success-border-color);
+ background-color: var(
+ --account-settings-security-mfa-alert-success-background
+ );
+ color: var(--account-settings-security-mfa-alert-success-text-color);
}
-.ak-btn-loader {
- :global(.ak-loader-circle-indicator) {
- stroke: var(--mfa-loader-primary-contrast-text) !important;
- }
+.info-box {
+ background-color: var(--account-settings-security-mfa-info-box-bg);
}
diff --git a/app/components/account-settings/security/multi-factor-auth/index.ts b/app/components/account-settings/security/multi-factor-auth/index.ts
index a4b092736..9b4065035 100644
--- a/app/components/account-settings/security/multi-factor-auth/index.ts
+++ b/app/components/account-settings/security/multi-factor-auth/index.ts
@@ -89,6 +89,27 @@ export default class AccountSettingsSecurityMultiFactorAuthComponent extends Com
return appMFA?.enabled ?? false;
}
+ get mfaAppRecords() {
+ return [
+ {
+ osTypes: 'For Android, iOS, and Blackberry:',
+ app: 'Google Authenticator',
+ infoURL: 'https://support.google.com/accounts/answer/1066447?hl=en',
+ },
+ {
+ osTypes: 'For Android & iOS:',
+ app: 'Duo Mobile',
+ infoURL: 'https://guide.duo.com/third-party-accounts',
+ },
+ {
+ osTypes: 'For Windows Phone:',
+ app: 'Authenticator',
+ infoURL:
+ 'https://www.microsoft.com/en-us/store/p/authenticator/9wzdncrfj3rj',
+ },
+ ];
+ }
+
//------No MFA Enable Email start------
@action
diff --git a/app/styles/_component-variables.scss b/app/styles/_component-variables.scss
index 7e475264a..89576aef7 100644
--- a/app/styles/_component-variables.scss
+++ b/app/styles/_component-variables.scss
@@ -1211,8 +1211,19 @@ body {
--neutral-grey-200
);
- // variables for account-settings/mfa
- --mfa-loader-primary-contrast-text: var(--primary-contrast-text);
+ // variables for account-settings/security
+ --account-settings-security-mfa-border-color: var(--border-color-1);
+ --account-settings-security-mfa-info-box-bg: var(--neutral-grey-100);
+ --account-settings-security-mfa-alert-warn-border-color: var(--warn-dark);
+ --account-settings-security-mfa-alert-warn-text-color: var(--warn-dark);
+ --account-settings-security-mfa-alert-warn-background: var(--warn-light);
+ --account-settings-security-mfa-alert-success-border-color: var(
+ --success-main
+ );
+ --account-settings-security-mfa-alert-success-text-color: var(--success-main);
+ --account-settings-security-mfa-alert-success-background: var(
+ --success-light
+ );
// variables for project-settings/empty-list
--project-settings-empty-list-border-radius: var(--border-radius);