Watcha op421 remove name limitations for new users (#47)

* fix(new user): remove abusive restriction on name

* feat(new user): clean up name of supernumerary spaces
develop
c-cal 5 years ago committed by GitHub
parent a310c284ee
commit 77e77e0f50
  1. 2
      public/locales/en/usersTab.json
  2. 2
      public/locales/fr/usersTab.json
  3. 7
      src/NewUserForm.js
  4. 12
      src/NewUserModal.js

@ -11,7 +11,7 @@
},
"invalid": "Please provide {{field}}",
"invalidField": {
"fullName": "name and surname spaced out",
"fullName": "valid alphabetic characters",
"emailAddress": "a valid email address"
},
"unavailableEmailAddress": "This email address is already bound to another account",

@ -11,7 +11,7 @@
},
"invalid": "Veuillez entrer {{field}}",
"invalidField": {
"fullName": "les nom et prénom espacés",
"fullName": "des caractères alphabétiques valides",
"emailAddress": "une adresse électronique valide"
},
"unavailableEmailAddress": "Cette adresse électronique est déjà liée à un autre compte",

@ -8,8 +8,6 @@ import Button from "react-bootstrap/Button";
import Form from "react-bootstrap/Form";
import InputGroup from "react-bootstrap/InputGroup";
const NAME_PATTERN = "[a-z\u00C0-\u017F]{2,}";
export default ({ userList, onSubmit, bindSubmitForm, feedback }) => {
const { t } = useTranslation("usersTab");
@ -29,7 +27,10 @@ export default ({ userList, onSubmit, bindSubmitForm, feedback }) => {
.string()
.required(t("requiered.fullName"))
.matches(
new RegExp(`^${NAME_PATTERN} ${NAME_PATTERN}$`, "i"),
// https://stackoverflow.com/a/39134560
// https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)
// https://en.wikipedia.org/wiki/Latin_Extended-A
new RegExp("^[ a-z\u00C0-\u017F]{2,}$", "i"),
t("invalid", { field: "$t(invalidField.fullName)" })
),
emailAddress: yup

@ -56,20 +56,22 @@ export default ({ modalShow, setModalShow, userList, newUserLocalEcho }) => {
const makePayload = data => ({
admin: data.isSynapseAdministrator ? "admin" : false,
email: data.emailAddress,
full_name: data.fullName,
user: computeUserIdFromEmailAddress(data.emailAddress),
full_name: _pruneSpace(data.fullName),
user: _computeUserIdFromEmailAddress(data.emailAddress),
});
const makeUser = data => ({
userId: computeUserIdFromEmailAddress(data.emailAddress),
displayName: data.fullName,
userId: _computeUserIdFromEmailAddress(data.emailAddress),
displayName: _pruneSpace(data.fullName),
emailAddress: data.emailAddress,
lastSeen: null,
role: data.isSynapseAdministrator ? "administrator" : "collaborator",
status: "active",
});
const computeUserIdFromEmailAddress = emailAddress =>
const _pruneSpace = string => string.replace(/ {2,}/g, " ").trim();
const _computeUserIdFromEmailAddress = emailAddress =>
emailAddress
.replace("@", "/")
.normalize("NFKD")

Loading…
Cancel
Save