Fixing last couple of auth dialogs
This commit is contained in:
@@ -2,13 +2,13 @@ import React from 'react'
|
||||
import { api } from 'src/API'
|
||||
import PropTypes from 'prop-types'
|
||||
import { MessageModal, WaitModal } from '../Modal'
|
||||
import { Logout } from '.'
|
||||
import autobind from 'autobind-decorator'
|
||||
|
||||
export class ConfirmEmail extends React.Component {
|
||||
static propTypes = {
|
||||
history: PropTypes.oneOfType([PropTypes.array, PropTypes.object])
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
this.state = {
|
||||
@@ -22,7 +22,9 @@ export class ConfirmEmail extends React.Component {
|
||||
|
||||
this.setState({ waitModal: { message: 'Validating Email...' } })
|
||||
if (emailToken) {
|
||||
api.confirmEmail(emailToken).then((response) => {
|
||||
api.logout().then(() => {
|
||||
return api.confirmEmail(emailToken)
|
||||
}).then((response) => {
|
||||
this.setState({ waitModal: null })
|
||||
if (response && response.passwordToken) {
|
||||
// API will send a password reset token if this is the first time loggin on
|
||||
@@ -54,10 +56,6 @@ export class ConfirmEmail extends React.Component {
|
||||
render() {
|
||||
const { messageModal, waitModal } = this.state
|
||||
|
||||
if (api.loggedInUser) {
|
||||
return <Logout redirect={`${window.location.pathname}${window.location.search}`} />
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
<WaitModal
|
||||
|
||||
@@ -5,7 +5,6 @@ import { Image, Text, Column, Row, BoundInput, BoundButton, Box } from 'ui'
|
||||
import { MessageModal, WaitModal } from '../Modal'
|
||||
import { api } from 'src/API'
|
||||
import { FormBinder } from 'react-form-binder'
|
||||
import { Logout } from '.'
|
||||
import headerLogo from 'images/deighton.png'
|
||||
import { sizeInfo, colorInfo } from 'ui/style'
|
||||
import autobind from 'autobind-decorator'
|
||||
@@ -35,6 +34,10 @@ export class ForgotPassword extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
api.logout()
|
||||
}
|
||||
|
||||
@autobind
|
||||
handleSubmit(e) {
|
||||
e.preventDefault()
|
||||
@@ -66,10 +69,6 @@ export class ForgotPassword extends Component {
|
||||
render() {
|
||||
const { binder, waitModal, messageModal } = this.state
|
||||
|
||||
if (api.loggedInUser) {
|
||||
return <Logout redirect={`${window.location.pathname}${window.location.search}`} />
|
||||
}
|
||||
|
||||
return (
|
||||
<Fragment>
|
||||
<Column.Item grow />
|
||||
|
||||
@@ -7,6 +7,7 @@ import autobind from 'autobind-decorator'
|
||||
export class ProtectedRoute extends React.Component {
|
||||
static propTypes = {
|
||||
location: PropTypes.shape({ pathname: PropTypes.string, search: PropTypes.string }),
|
||||
admin: PropTypes.bool,
|
||||
}
|
||||
|
||||
@autobind
|
||||
@@ -30,11 +31,11 @@ export class ProtectedRoute extends React.Component {
|
||||
// The API might be in the middle of fetching the user information
|
||||
// Return something and wait for login evint to fire to re-render
|
||||
return <div />
|
||||
} else if (user.administrator) {
|
||||
} else if (!this.props.admin || (this.props.admin && user.administrator)) {
|
||||
return <Route {...this.props} />
|
||||
}
|
||||
} else {
|
||||
return <Redirect to={`/login?redirect=${this.props.location.pathname}${this.props.location.search}`} />
|
||||
}
|
||||
|
||||
return <Redirect to={`/login?redirect=${this.props.location.pathname}${this.props.location.search}`} />
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import React, { Component, Fragment } from 'react'
|
||||
import PropTypes from 'prop-types'
|
||||
import { Box, Text, Image, Column, Row, BoundInput, BoundButton } from 'ui'
|
||||
import { Logout } from '.'
|
||||
import { MessageModal, WaitModal } from '../Modal'
|
||||
import { api } from 'src/API'
|
||||
import { FormBinder } from 'react-form-binder'
|
||||
@@ -47,13 +46,10 @@ export class ResetPassword extends Component {
|
||||
|
||||
this.setState({ waitModal: { message: 'Confirming password reset...' } })
|
||||
if (passwordToken) {
|
||||
api.confirmResetPassword(passwordToken).then((response) => {
|
||||
this.setState({ waitModal: null })
|
||||
if (response && response.valid) {
|
||||
this.setState({ tokenConfirmed: true })
|
||||
} else {
|
||||
this.props.history.replace('/')
|
||||
}
|
||||
api.logout().then(() => {
|
||||
return api.confirmResetPassword(passwordToken)
|
||||
}).then((response) => {
|
||||
this.setState({ waitModal: null, tokenConfirmed: true })
|
||||
}).catch((err) => {
|
||||
this.setState({
|
||||
waitModal: null,
|
||||
@@ -107,10 +103,6 @@ export class ResetPassword extends Component {
|
||||
render() {
|
||||
const { messageModal, waitModal, binder } = this.state
|
||||
|
||||
if (api.loggedInUser) {
|
||||
return <Logout redirect={`${window.location.pathname}${window.location.search}`} />
|
||||
}
|
||||
|
||||
return (
|
||||
<Fragment>
|
||||
<Column.Item grow />
|
||||
|
||||
Reference in New Issue
Block a user