// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import React from 'react'; import * as Utils from 'utils/utils.jsx'; import AdminSettings from './admin_settings.jsx'; import BooleanSetting from './boolean_setting.jsx'; import {FormattedMessage} from 'react-intl'; import GeneratedSetting from './generated_setting.jsx'; import SettingsGroup from './settings_group.jsx'; import TextSetting from './text_setting.jsx'; export default class LoginSettings extends AdminSettings { constructor(props) { super(props); this.getConfigFromState = this.getConfigFromState.bind(this); this.renderSettings = this.renderSettings.bind(this); this.state = Object.assign(this.state, { passwordResetSalt: props.config.EmailSettings.PasswordResetSalt, maximumLoginAttempts: props.config.ServiceSettings.MaximumLoginAttempts, enableMultifactorAuthentication: props.config.ServiceSettings.EnableMultifactorAuthentication }); } getConfigFromState(config) { config.EmailSettings.PasswordResetSalt = this.state.passwordResetSalt; config.ServiceSettings.MaximumLoginAttempts = this.parseIntNonZero(this.state.maximumLoginAttempts); if (global.window.mm_license.IsLicensed === 'true' && global.window.mm_license.MFA === 'true') { config.ServiceSettings.EnableMultifactorAuthentication = this.state.enableMultifactorAuthentication; } return config; } renderTitle() { return (

); } renderSettings() { let mfaSetting = null; if (global.window.mm_license.IsLicensed === 'true' && global.window.mm_license.MFA === 'true') { mfaSetting = ( } helpText={ } value={this.state.enableMultifactorAuthentication} onChange={this.handleChange} /> ); } return ( } helpText={ } value={this.state.passwordResetSalt} onChange={this.handleChange} disabled={this.state.sendEmailNotifications} disabledText={ } /> } placeholder={Utils.localizeMessage('admin.service.attemptExample', 'Ex "10"')} helpText={ } value={this.state.maximumLoginAttempts} onChange={this.handleChange} /> {mfaSetting} ); } }