From c06669873fbd7e257423bff5c750aa3c6c5a2ff5 Mon Sep 17 00:00:00 2001 From: John Lyon-Smith Date: Wed, 7 Mar 2018 09:21:43 -0800 Subject: [PATCH] Fix titles and tab colors for actors --- .../UserInterfaceState.xcuserstate | Bin 20919 -> 21069 bytes server/src/api/routes/AuthRoutes.js | 2 +- website/src/Auth/ForgotPassword.js | 2 +- website/src/Auth/ResetPassword.js | 5 +- website/src/Modal/ChangeEmailModal.js | 53 +++++++++++------ website/src/Profile/ProfileForm.js | 2 +- website/src/Users/UserList.js | 4 +- website/src/Users/Users.js | 56 ++++++++++-------- 8 files changed, 73 insertions(+), 51 deletions(-) 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 8cef5262e6d14775c742fcadd5cde63360ce58bf..2c45d213dce6e58cc8faaac7f87191f86538a4ba 100644 GIT binary patch delta 2109 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 Vu|Kmf*?o+C&wdi~O&sQQ{ugo0d&U3& 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} + + + + + + + + + + +