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
66
webapp/components/mfa/mfa_controller.jsx
Обычный файл
66
webapp/components/mfa/mfa_controller.jsx
Обычный файл
@@ -0,0 +1,66 @@
|
||||
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import {FormattedMessage} from 'react-intl';
|
||||
import {browserHistory, Link} from 'react-router/es6';
|
||||
|
||||
import logoImage from 'images/logo.png';
|
||||
|
||||
export default class MFAController extends React.Component {
|
||||
componentDidMount() {
|
||||
if (window.mm_license.MFA !== 'true' || window.mm_config.EnableMultifactorAuthentication !== 'true') {
|
||||
browserHistory.push('/');
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
let backButton;
|
||||
if (window.mm_config.EnforceMultifactorAuthentication !== 'true') {
|
||||
backButton = (
|
||||
<div className='signup-header'>
|
||||
<Link to='/'>
|
||||
<span className='fa fa-chevron-left'/>
|
||||
<FormattedMessage
|
||||
id='web.header.back'
|
||||
/>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className='inner-wrap sticky'>
|
||||
<div className='content'>
|
||||
<div>
|
||||
{backButton}
|
||||
<div className='col-sm-12'>
|
||||
<div className='signup-team__container'>
|
||||
<h3>
|
||||
<FormattedMessage
|
||||
id='mfa.setupTitle'
|
||||
defaultMessage='Multi-factor Authentication Setup'
|
||||
/>
|
||||
</h3>
|
||||
<img
|
||||
className='signup-team-logo'
|
||||
src={logoImage}
|
||||
/>
|
||||
<div id='mfa'>
|
||||
{React.cloneElement(this.props.children, {})}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
MFAController.defaultProps = {
|
||||
};
|
||||
MFAController.propTypes = {
|
||||
location: React.PropTypes.object.isRequired,
|
||||
children: React.PropTypes.node
|
||||
};
|
||||
Ссылка в новой задаче
Block a user