|
@@ -143,12 +143,18 @@ module.exports = eggspress(['/signup'], {
|
|
|
else if(!req.body.is_temp && req.body.password.length < config.min_pass_length)
|
|
|
return res.status(400).send(`Password must be at least ${config.min_pass_length} characters long.`);
|
|
|
|
|
|
+ const svc_cleanEmail = req.services.get('clean-email');
|
|
|
+ const clean_email = svc_cleanEmail.clean(req.body.email);
|
|
|
+
|
|
|
// duplicate username check
|
|
|
if(await username_exists(req.body.username))
|
|
|
return res.status(400).send('This username already exists in our database. Please use another one.');
|
|
|
// Email check is here :: Add condition for email_confirmed=1
|
|
|
// duplicate email check (pseudo-users don't count)
|
|
|
- let rows2 = await db.read(`SELECT EXISTS(SELECT 1 FROM user WHERE email=? AND email_confirmed=1 AND password IS NOT NULL) AS email_exists`, [req.body.email]);
|
|
|
+ let rows2 = await db.read(
|
|
|
+ `SELECT EXISTS(
|
|
|
+ SELECT 1 FROM user WHERE (email=? OR clean_email=?) AND email_confirmed=1 AND password IS NOT NULL
|
|
|
+ ) AS email_exists`, [req.body.email, clean_email]);
|
|
|
if(rows2[0].email_exists)
|
|
|
return res.status(400).send('This email already exists in our database. Please use another one.');
|
|
|
// get pseudo user, if exists
|
|
@@ -188,12 +194,14 @@ module.exports = eggspress(['/signup'], {
|
|
|
if(pseudo_user === undefined){
|
|
|
insert_res = await db.write(
|
|
|
`INSERT INTO user
|
|
|
- (username, email, password, uuid, referrer, email_confirm_code, email_confirm_token, free_storage, referred_by) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
|
+ (username, email, clean_email, password, uuid, referrer, email_confirm_code, email_confirm_token, free_storage, referred_by) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
|
[
|
|
|
// username
|
|
|
req.body.username,
|
|
|
// email
|
|
|
req.body.is_temp ? null : req.body.email,
|
|
|
+ // normalized email
|
|
|
+ req.body.is_temp ? null : clean_email,
|
|
|
// password
|
|
|
req.body.is_temp ? null : await bcrypt.hash(req.body.password, 8),
|
|
|
// uuid
|