🐛 normalizeEmail is now disabled

This commit is contained in:
divlo 2020-08-03 12:38:58 +02:00
parent c4b7fdce76
commit c687a153c3

View File

@ -10,11 +10,12 @@ const UsersRouter = Router()
UsersRouter.route('/') UsersRouter.route('/')
// Récupère les utilisateurs // Récupère les utilisateurs
.get(usersController.getUsers) .get(usersController.getUsers)
// Permet de modifier son profil // Permet de modifier son profil
.put(isAuth, .put(
isAuth,
fileUpload({ fileUpload({
useTempFiles: true, useTempFiles: true,
safeFileNames: true, safeFileNames: true,
@ -26,7 +27,7 @@ UsersRouter.route('/')
body('email') body('email')
.isEmail() .isEmail()
.withMessage('Veuillez rentré une adresse mail valide.') .withMessage('Veuillez rentré une adresse mail valide.')
.custom(async (email) => { .custom(async email => {
try { try {
const user = await Users.findOne({ where: { email } }) const user = await Users.findOne({ where: { email } })
if (user && user.email !== email) { if (user && user.email !== email) {
@ -44,10 +45,12 @@ UsersRouter.route('/')
.isEmpty() .isEmpty()
.withMessage('Vous devez avoir un nom (ou pseudo).') .withMessage('Vous devez avoir un nom (ou pseudo).')
.isAlphanumeric() .isAlphanumeric()
.withMessage('Votre nom ne peut contenir que des lettres ou/et des nombres.') .withMessage(
'Votre nom ne peut contenir que des lettres ou/et des nombres.'
)
.isLength({ max: 30 }) .isLength({ max: 30 })
.withMessage('Votre nom est trop long') .withMessage('Votre nom est trop long')
.custom(async (name) => { .custom(async name => {
try { try {
const user = await Users.findOne({ where: { name } }) const user = await Users.findOne({ where: { name } })
if (user && user.name !== name) { if (user && user.name !== name) {
@ -60,86 +63,105 @@ UsersRouter.route('/')
}), }),
body('isPublicEmail') body('isPublicEmail')
.isBoolean() .isBoolean()
.withMessage("L'adresse email peut être public ou privé, rien d'autre."), .withMessage(
"L'adresse email peut être public ou privé, rien d'autre."
),
body('biography') body('biography')
.trim() .trim()
.escape() .escape()
], usersController.putUser) ],
usersController.putUser
)
// Permet de se connecter // Permet de se connecter
UsersRouter.post('/login', [ UsersRouter.post(
body('email') '/login',
.not() [
.isEmpty() body('email')
.withMessage(requiredFields.message), .not()
body('password') .isEmpty()
.not() .withMessage(requiredFields.message),
.isEmpty() body('password')
.withMessage(requiredFields.message) .not()
], usersController.login) .isEmpty()
.withMessage(requiredFields.message)
],
usersController.login
)
// Récupère les informations public d'un profil // Récupère les informations public d'un profil
UsersRouter.get('/:name', usersController.getUserInfo) UsersRouter.get('/:name', usersController.getUserInfo)
// Permet de s'inscrire // Permet de s'inscrire
UsersRouter.post('/register', [ UsersRouter.post(
body('email') '/register',
.isEmail() [
.withMessage('Veuillez rentré une adresse mail valide.') body('email')
.custom(async (email) => { .isEmail()
try { .withMessage('Veuillez rentré une adresse mail valide.')
const user = await Users.findOne({ where: { email } }) .custom(async email => {
if (user) { try {
return Promise.reject(new Error("L'adresse email existe déjà...")) const user = await Users.findOne({ where: { email } })
if (user) {
return Promise.reject(new Error("L'adresse email existe déjà..."))
}
} catch (error) {
return console.log(error)
} }
} catch (error) { return true
return console.log(error) }),
} body('password')
return true .isLength({ min: 4 })
}) .withMessage('Votre mot de passe est trop court!'),
.normalizeEmail(), body('name')
body('password') .trim()
.isLength({ min: 4 }) .not()
.withMessage('Votre mot de passe est trop court!'), .isEmpty()
body('name') .withMessage('Vous devez avoir un nom (ou pseudo).')
.trim() .isAlphanumeric()
.not() .withMessage(
.isEmpty() 'Votre nom ne peut contenir que des lettres ou/et des nombres.'
.withMessage('Vous devez avoir un nom (ou pseudo).') )
.isAlphanumeric() .isLength({ max: 30 })
.withMessage('Votre nom ne peut contenir que des lettres ou/et des nombres.') .withMessage('Votre nom est trop long')
.isLength({ max: 30 }) .custom(async name => {
.withMessage('Votre nom est trop long') try {
.custom(async (name) => { const user = await Users.findOne({ where: { name } })
try { if (user) {
const user = await Users.findOne({ where: { name } }) return Promise.reject(new Error('Le nom existe déjà...'))
if (user) { }
return Promise.reject(new Error('Le nom existe déjà...')) } catch (error) {
console.log(error)
} }
} catch (error) { return true
console.log(error) })
} ],
return true usersController.register
}) )
], usersController.register)
// Confirme l'inscription // Confirme l'inscription
UsersRouter.get('/confirm-email/:tempToken', usersController.confirmEmail) UsersRouter.get('/confirm-email/:tempToken', usersController.confirmEmail)
UsersRouter.route('/reset-password') UsersRouter.route('/reset-password')
// Demande une réinitialisation du mot de passe // Demande une réinitialisation du mot de passe
.post([ .post(
body('email') [
.isEmail() body('email')
.withMessage('Veuillez rentré une adresse mail valide.') .isEmail()
], usersController.resetPassword) .withMessage('Veuillez rentré une adresse mail valide.')
],
usersController.resetPassword
)
// Nouveau mot de passe // Nouveau mot de passe
.put([ .put(
body('password') [
.isLength({ min: 4 }) body('password')
.withMessage('Votre mot de passe est trop court!') .isLength({ min: 4 })
], usersController.newPassword) .withMessage('Votre mot de passe est trop court!')
],
usersController.newPassword
)
module.exports = UsersRouter module.exports = UsersRouter