From ffbe185d827aaaefb2c5ca9067980eb99b9d53b9 Mon Sep 17 00:00:00 2001 From: Michael Leer Date: Mon, 14 Sep 2015 14:54:36 +0100 Subject: [PATCH 1/4] PLT-41 Automatically convert uppercase letters to lowercase in username input box. Validator not changed. --- web/react/components/team_signup_username_page.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/react/components/team_signup_username_page.jsx b/web/react/components/team_signup_username_page.jsx index b5c8b14dfc..984c7afabf 100644 --- a/web/react/components/team_signup_username_page.jsx +++ b/web/react/components/team_signup_username_page.jsx @@ -22,7 +22,7 @@ export default class TeamSignupUsernamePage extends React.Component { submitNext(e) { e.preventDefault(); - var name = React.findDOMNode(this.refs.name).value.trim(); + var name = React.findDOMNode(this.refs.name).value.trim().toLowerCase(); var usernameError = Utils.isValidUsername(name); if (usernameError === 'Cannot use a reserved word as a username.') { From 5fbd1e98601f2a52c0b72d9559dec7a41db7f84a Mon Sep 17 00:00:00 2001 From: Michael Leer Date: Mon, 14 Sep 2015 15:15:48 +0100 Subject: [PATCH 2/4] PLT-41 Removed lowercase from the error wording. Removed additional toLowerCase within validator. --- web/react/utils/utils.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index 71cd1d3441..879f686896 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -828,11 +828,11 @@ export function isValidUsername(name) { } else if (name.length < 3 || name.length > 15) { error = 'Must be between 3 and 15 characters'; } else if (!(/^[a-z0-9\.\-\_]+$/).test(name)) { - error = "Must contain only lowercase letters, numbers, and the symbols '.', '-', and '_'."; + error = "Must contain only letters, numbers, and the symbols '.', '-', and '_'."; } else if (!(/[a-z]/).test(name.charAt(0))) { error = 'First character must be a letter.'; } else { - var lowerName = name.toLowerCase().trim(); + var lowerName = name; for (var i = 0; i < Constants.RESERVED_USERNAMES.length; i++) { if (lowerName === Constants.RESERVED_USERNAMES[i]) { From 90ef55b4284e654ecae614b8d3b0c59bfba95b3b Mon Sep 17 00:00:00 2001 From: Michael Leer Date: Mon, 14 Sep 2015 16:10:31 +0100 Subject: [PATCH 3/4] replace lowerName with name --- web/react/utils/utils.jsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index 879f686896..54d05f484c 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -832,10 +832,8 @@ export function isValidUsername(name) { } else if (!(/[a-z]/).test(name.charAt(0))) { error = 'First character must be a letter.'; } else { - var lowerName = name; - for (var i = 0; i < Constants.RESERVED_USERNAMES.length; i++) { - if (lowerName === Constants.RESERVED_USERNAMES[i]) { + if (name === Constants.RESERVED_USERNAMES[i]) { error = 'Cannot use a reserved word as a username.'; break; } From c961c529af28e4e90a0f433dd097e98781a4f112 Mon Sep 17 00:00:00 2001 From: Michael Leer Date: Mon, 14 Sep 2015 19:29:56 +0100 Subject: [PATCH 4/4] update remaining web files tolowercase --- web/react/components/signup_user_complete.jsx | 2 +- web/react/components/user_settings_general.jsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/react/components/signup_user_complete.jsx b/web/react/components/signup_user_complete.jsx index f078f61698..6e71eae323 100644 --- a/web/react/components/signup_user_complete.jsx +++ b/web/react/components/signup_user_complete.jsx @@ -32,7 +32,7 @@ export default class SignupUserComplete extends React.Component { handleSubmit(e) { e.preventDefault(); - this.state.user.username = React.findDOMNode(this.refs.name).value.trim(); + this.state.user.username = React.findDOMNode(this.refs.name).value.trim().toLowerCase(); if (!this.state.user.username) { this.setState({nameError: 'This field is required', emailError: '', passwordError: '', serverError: ''}); return; diff --git a/web/react/components/user_settings_general.jsx b/web/react/components/user_settings_general.jsx index 184534a9a7..dd0abc8a59 100644 --- a/web/react/components/user_settings_general.jsx +++ b/web/react/components/user_settings_general.jsx @@ -40,7 +40,7 @@ export default class UserSettingsGeneralTab extends React.Component { e.preventDefault(); var user = this.props.user; - var username = this.state.username.trim(); + var username = this.state.username.trim().toLowerCase(); var usernameError = utils.isValidUsername(username); if (usernameError === 'Cannot use a reserved word as a username.') {