Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class ChangeEmailForm extends React.Component {
}

render() {
const { settings, checkingEmail, checkedEmail, isEmailAvailable, isEmailChanging, emailSubmitted } = this.props
const { settings, checkingEmail, checkedEmail, isEmailAvailable, isEmailChanging, emailSubmitted, isCustomer } = this.props
const { currentEmail, isValid, isFocused } = this.state
const currentEmailAvailable = checkedEmail === currentEmail && isEmailAvailable
const isCheckingCurrentEmail = checkingEmail === currentEmail
Expand Down Expand Up @@ -138,7 +138,7 @@ class ChangeEmailForm extends React.Component {
validationErrors={{
isEmail: 'Provide a correct email'
}}
disabled={isEmailChanging}
disabled={isEmailChanging || !isCustomer}
ref={(ref) => this.emailRef = ref}
/>
{ isFocused && isCheckingCurrentEmail && (
Expand Down Expand Up @@ -177,7 +177,8 @@ ChangeEmailForm.propTypes = {
checkedEmail: PropTypes.string,
checkingEmailError: PropTypes.string,
isEmailAvailable: PropTypes.bool,
isEmailChanging: PropTypes.bool
isEmailChanging: PropTypes.bool,
isCustomer: PropTypes.bool
}

export default ChangeEmailForm
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const TCFormFields = FormsyForm.Fields

class SystemSettingsForm extends Component {
render() {
const { changePassword, checkEmailAvailability, changeEmail, systemSettings, resetPassword } = this.props
const { changePassword, checkEmailAvailability, changeEmail, systemSettings, resetPassword, isCustomer } = this.props
return (
<div styleName="system-settings-container">

Expand Down Expand Up @@ -40,6 +40,7 @@ class SystemSettingsForm extends Component {
checkEmailAvailability={checkEmailAvailability}
onSubmit={(email) => changeEmail(email)}
{...systemSettings}
isCustomer={isCustomer}
/>
</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
*/
import React, { Component } from 'react'
import PropTypes from 'prop-types'

import _ from 'lodash'
import { connect } from 'react-redux'
import spinnerWhileLoading from '../../../../../components/LoadingSpinner'
import SettingsPanel from '../../../components/SettingsPanel'
import { checkEmailAvailability, changeEmail, changePassword, getSystemSettings, resetPassword } from '../../../actions'
import { requiresAuthentication } from '../../../../../components/AuthenticatedComponent'
import SystemSettingsForm from '../components/SystemSettingsForm'
import { ROLE_CONNECT_COPILOT, ROLE_CONNECT_MANAGER, ROLE_CONNECT_ACCOUNT_MANAGER, ROLE_CONNECT_COPILOT_MANAGER, ROLE_ADMINISTRATOR, ROLE_CONNECT_ADMIN } from '../../../../../config/constants'
import './SystemSettingsContainer.scss'

const enhance = spinnerWhileLoading(props => !props.systemSettings.isLoading)
Expand Down Expand Up @@ -39,9 +40,14 @@ SystemSettingsContainer.propTypes = {

const SystemSettingsContainerWithAuth = requiresAuthentication(SystemSettingsContainer)

const mapStateToProps = ({ settings }) => ({
systemSettings: settings.system
})
const mapStateToProps = ({ settings, loadUser }) => {
const powerUserRoles = [ROLE_CONNECT_COPILOT, ROLE_CONNECT_MANAGER, ROLE_CONNECT_ACCOUNT_MANAGER, ROLE_CONNECT_COPILOT_MANAGER, ROLE_ADMINISTRATOR, ROLE_CONNECT_ADMIN]

return {
systemSettings: settings.system,
isCustomer: _.intersection(loadUser.user.roles, powerUserRoles).length === 0
}
}

const mapDispatchToProps = {
getSystemSettings,
Expand Down