PLT-4767 Implement MFA Enforcement (#4662)
* Create MFA setup page and remove MFA setup from account settings modal * Add enforce MFA to system console and force redirect * Lockdown mfa required API routes, add localization, other changes * Minor fixes * Fix typo * Fix some unit tests * Fix more unit tests * Minor fix * Updating UI for MFA screen (#4670) * Updating UI for MFA screen * Updating styles for MFA page * Add the ability to switch between email/sso with MFA enabled * Added mfa change email * Minor UI updates for MFA enforcement * Fix unit test * Fix client unit test * Allow switching email to ldap and back when MFA is enabled * Fix unit test * Revert config.json
Этот коммит содержится в:
коммит произвёл
enahum
родитель
f0d71d8789
Коммит
30a10d35a8
@@ -6,7 +6,6 @@ import AdminSettings from './admin_settings.jsx';
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
import SettingsGroup from './settings_group.jsx';
|
||||
import TextSetting from './text_setting.jsx';
|
||||
import BooleanSetting from './boolean_setting.jsx';
|
||||
import Setting from './setting.jsx';
|
||||
import * as Utils from 'utils/utils.jsx';
|
||||
import Constants from 'utils/constants.jsx';
|
||||
@@ -32,7 +31,6 @@ export default class PasswordSettings extends AdminSettings {
|
||||
passwordUppercase: props.config.PasswordSettings.Uppercase,
|
||||
passwordSymbol: props.config.PasswordSettings.Symbol,
|
||||
maximumLoginAttempts: props.config.ServiceSettings.MaximumLoginAttempts,
|
||||
enableMultifactorAuthentication: props.config.ServiceSettings.EnableMultifactorAuthentication,
|
||||
passwordResetSalt: props.config.EmailSettings.PasswordResetSalt
|
||||
});
|
||||
|
||||
@@ -75,9 +73,6 @@ export default class PasswordSettings extends AdminSettings {
|
||||
|
||||
config.ServiceSettings.MaximumLoginAttempts = this.parseIntNonZero(this.state.maximumLoginAttempts);
|
||||
config.EmailSettings.PasswordResetSalt = this.state.passwordResetSalt;
|
||||
if (global.window.mm_license.IsLicensed === 'true' && global.window.mm_license.MFA === 'true') {
|
||||
config.ServiceSettings.EnableMultifactorAuthentication = this.state.enableMultifactorAuthentication;
|
||||
}
|
||||
|
||||
return config;
|
||||
}
|
||||
@@ -90,7 +85,6 @@ export default class PasswordSettings extends AdminSettings {
|
||||
passwordUppercase: config.PasswordSettings.Uppercase,
|
||||
passwordSymbol: config.PasswordSettings.Symbol,
|
||||
maximumLoginAttempts: config.ServiceSettings.MaximumLoginAttempts,
|
||||
enableMultifactorAuthentication: config.ServiceSettings.EnableMultifactorAuthentication,
|
||||
passwordResetSalt: config.EmailSettings.PasswordResetSalt
|
||||
};
|
||||
}
|
||||
@@ -154,29 +148,6 @@ export default class PasswordSettings extends AdminSettings {
|
||||
}
|
||||
|
||||
renderSettings() {
|
||||
let mfaSetting = null;
|
||||
if (global.window.mm_license.IsLicensed === 'true' && global.window.mm_license.MFA === 'true') {
|
||||
mfaSetting = (
|
||||
<BooleanSetting
|
||||
id='enableMultifactorAuthentication'
|
||||
label={
|
||||
<FormattedMessage
|
||||
id='admin.service.mfaTitle'
|
||||
defaultMessage='Enable Multi-factor Authentication:'
|
||||
/>
|
||||
}
|
||||
helpText={
|
||||
<FormattedMessage
|
||||
id='admin.service.mfaDesc'
|
||||
defaultMessage='When true, users will be given the option to add multi-factor authentication to their account. They will need a smartphone and an authenticator app such as Google Authenticator.'
|
||||
/>
|
||||
}
|
||||
value={this.state.enableMultifactorAuthentication}
|
||||
onChange={this.handleChange}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
let passwordSettings = null;
|
||||
if (global.window.mm_license.IsLicensed === 'true' && global.window.mm_license.PasswordRequirements === 'true') {
|
||||
passwordSettings = (
|
||||
@@ -332,8 +303,7 @@ export default class PasswordSettings extends AdminSettings {
|
||||
value={this.state.maximumLoginAttempts}
|
||||
onChange={this.handleChange}
|
||||
/>
|
||||
{mfaSetting}
|
||||
</SettingsGroup>
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user