diff --git a/mobile/ios/DeightonAR.xcodeproj/project.xcworkspace/xcuserdata/john.xcuserdatad/UserInterfaceState.xcuserstate b/mobile/ios/DeightonAR.xcodeproj/project.xcworkspace/xcuserdata/john.xcuserdatad/UserInterfaceState.xcuserstate index 8cef526..2c45d21 100644 Binary files a/mobile/ios/DeightonAR.xcodeproj/project.xcworkspace/xcuserdata/john.xcuserdatad/UserInterfaceState.xcuserstate and b/mobile/ios/DeightonAR.xcodeproj/project.xcworkspace/xcuserdata/john.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/server/src/api/routes/AuthRoutes.js b/server/src/api/routes/AuthRoutes.js index 1457ce6..9c721b9 100644 --- a/server/src/api/routes/AuthRoutes.js +++ b/server/src/api/routes/AuthRoutes.js @@ -149,7 +149,7 @@ export class AuthRoutes { return Promise.reject(createError.NotFound(`User with email '${existingEmail}' was not found`)) } else if (conflictingUser) { return Promise.reject(createError.BadRequest(`A user with '${newEmail}' already exists`)) - } else if (!isAdminOrExec && user.emailToken && (new Date() - user.emailToken.created) < this.sendEmailDelayInSeconds) { + } else if (!isAdmin && user.emailToken && (new Date() - user.emailToken.created) < this.sendEmailDelayInSeconds) { return Promise.reject(createError.BadRequest('Cannot request email confirmation again so soon')) } diff --git a/website/src/Auth/ForgotPassword.js b/website/src/Auth/ForgotPassword.js index a62ade9..2d6e73c 100644 --- a/website/src/Auth/ForgotPassword.js +++ b/website/src/Auth/ForgotPassword.js @@ -81,7 +81,7 @@ export class ForgotPassword extends React.Component { The email address of an existing user to send the password reset link to. - Submit diff --git a/website/src/Auth/ResetPassword.js b/website/src/Auth/ResetPassword.js index f21b87a..41f4897 100644 --- a/website/src/Auth/ResetPassword.js +++ b/website/src/Auth/ResetPassword.js @@ -62,7 +62,7 @@ export class ResetPassword extends React.Component { render() { return (
-
+ Reset Password @@ -85,8 +85,7 @@ export class ResetPassword extends React.Component { - +
diff --git a/website/src/Modal/ChangeEmailModal.js b/website/src/Modal/ChangeEmailModal.js index 4924255..1ffbd23 100644 --- a/website/src/Modal/ChangeEmailModal.js +++ b/website/src/Modal/ChangeEmailModal.js @@ -1,13 +1,14 @@ import React from 'react' import PropTypes from 'prop-types' import { autoBind } from 'auto-bind2' -import { Modal, Button, Icon, Column, Text, BoundInput, BoundButton } from 'ui' +import { Modal, Button, Row, Column, BoundInput, BoundButton, Text } from 'ui' import { regExpPattern } from 'regexp-pattern' import { FormBinder } from 'react-form-binder' export class ChangeEmailModal extends React.Component { static propTypes = { open: PropTypes.bool, + oldEmail: PropTypes.string, onDismiss: PropTypes.func } @@ -43,7 +44,7 @@ export class ChangeEmailModal extends React.Component { let newEmail = null if (this.state.binder.anyModified && this.state.binder.allValid) { - newEmail = this.state.binder.getField('newEmail').value + newEmail = this.state.binder.getFieldValue('newEmail') } this.close(newEmail) @@ -57,24 +58,42 @@ export class ChangeEmailModal extends React.Component { return ( -
+ + - Change Email - - - - - - - OK - - + + + + + + {this.props.oldEmail} + + + + + + + + + + +