diff --git a/server/config/passport.js b/server/config/passport.js index a6cbc5a508..d206238f08 100644 --- a/server/config/passport.js +++ b/server/config/passport.js @@ -13,6 +13,9 @@ import User from '../models/user'; const accountSuspensionMessage = 'Account has been suspended. Please contact privacy@p5js.org if you believe this is an error.'; +const accountLinkingErrorMessage = + 'Account is already linked to another account.'; + function generateUniqueUsername(username) { const adj = friendlyWords.predicates[ @@ -123,18 +126,15 @@ passport.use( User.findOne({ github: profile.id }, (findByGithubErr, existingUser) => { if (existingUser) { if (req.user && req.user.email !== existingUser.email) { - done( - new Error('GitHub account is already linked to another account.') - ); + done(null, false, { msg: accountLinkingErrorMessage }); return; } else if (existingUser.banned) { - done(new Error(accountSuspensionMessage)); + done(null, false, { msg: accountSuspensionMessage }); return; } done(null, existingUser); return; } - const emails = getVerifiedEmails(profile.emails); const primaryEmail = getPrimaryEmail(profile.emails); @@ -159,7 +159,7 @@ passport.use( [existingEmailUser] = existingEmailUsers; } if (existingEmailUser.banned) { - done(new Error(accountSuspensionMessage)); + done(null, false, { msg: accountSuspensionMessage }); return; } existingEmailUser.email = existingEmailUser.email || primaryEmail; @@ -218,14 +218,10 @@ passport.use( (findByGoogleErr, existingUser) => { if (existingUser) { if (req.user && req.user.email !== existingUser.email) { - done( - new Error( - 'Google account is already linked to another account.' - ) - ); + done(null, false, { msg: accountLinkingErrorMessage }); return; } else if (existingUser.banned) { - done(new Error(accountSuspensionMessage)); + done(null, false, { msg: accountSuspensionMessage }); return; } done(null, existingUser); @@ -256,7 +252,7 @@ passport.use( // then, append a random friendly word? if (existingEmailUser) { if (existingEmailUser.banned) { - done(new Error(accountSuspensionMessage)); + done(null, false, { msg: accountSuspensionMessage }); return; } existingEmailUser.email =