Skip to content

Commit

Permalink
add: env variable and logic to skip email verification
Browse files Browse the repository at this point in the history
  • Loading branch information
sirpy committed May 27, 2019
1 parent 71b0dec commit 8914309
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 13 deletions.
3 changes: 2 additions & 1 deletion .env.dev
Expand Up @@ -16,4 +16,5 @@ MAUTIC_TOKEN=""
ZOOM_API_URL=https://api.zoomauth.com/api/v1/biometrics
ZOOM_TOKEN=
ZOOM_MIN_MATCH_LEVEL=1
ALLOW_DUPLICATE_USER_DATA=true
ALLOW_DUPLICATE_USER_DATA=true
SKIP_EMAIL_VERIFICATION=true
1 change: 1 addition & 0 deletions .env.example
Expand Up @@ -29,3 +29,4 @@ GUN_PRIVATE_S3=
AWS_S3_BUCKET=1
#allow multiple users to register with same mobile/email - for testing
ALLOW_DUPLICATE_USER_DATA=true
SKIP_EMAIL_VERIFICATION=true
6 changes: 6 additions & 0 deletions src/server/server.config.js
Expand Up @@ -202,6 +202,12 @@ const conf = convict({
format: Boolean,
env: 'ALLOW_DUPLICATE_USER_DATA',
default: false
},
skipEmailVerification: {
doc: 'Allow to register with unverified email',
format: Boolean,
env: 'SKIP_EMAIL_VERIFICATION',
default: false
}
})

Expand Down
6 changes: 5 additions & 1 deletion src/server/storage/storageAPI.js
Expand Up @@ -20,7 +20,11 @@ const setup = (app: Router, storage: StorageAPI) => {
const logger = req.log.child({ from: 'storageAPI - /user/add' })

//check that user passed all min requirements
if (['production', 'staging'].includes(conf.env) && (!userRecord.smsValidated || !userRecord.isEmailConfirmed))
if (
['production', 'staging'].includes(conf.env) &&
(userRecord.smsValidated !== true ||
(conf.skipEmailVerification === false && userRecord.isEmailConfirmed !== true))
)
throw new Error('User email or mobile not verified!')

const user: UserRecord = defaults(body.user, { identifier: userRecord.loggedInAs })
Expand Down
24 changes: 13 additions & 11 deletions src/server/verification/verificationAPI.js
Expand Up @@ -156,18 +156,20 @@ const setup = (app: Router, verifier: VerificationAPI, storage: StorageAPI) => {
userRec.mauticId = mauticContact.contact.fields.all.id
log.debug('created new user mautic contact', userRec)
}
const code = generateOTP(10)
if (!user.isEmailConfirmed) {
const validationLink = `${conf.walletUrl}/Signup/EmailConfirmation/?validation=${code}`
Mautic.sendVerificationEmail(userRec, validationLink)
log.debug('send new user email validation link', validationLink)
if (conf.skipEmailVerification === false) {
const code = generateOTP(10)
if (!user.isEmailConfirmed) {
const validationLink = `${conf.walletUrl}/Signup/EmailConfirmation/?validation=${code}`
Mautic.sendVerificationEmail(userRec, validationLink)
log.debug('send new user email validation link', validationLink)
}
// updates/adds user with the emailVerificationCode to be used for verification later and with mauticId
await storage.updateUser({
identifier: user.loggedInAs,
mauticId: userRec.mauticId,
emailVerificationCode: code
})
}
// updates/adds user with the emailVerificationCode to be used for verification later and with mauticId
await storage.updateUser({
identifier: user.loggedInAs,
mauticId: userRec.mauticId,
emailVerificationCode: code
})

res.json({ ok: 1 })
})
Expand Down

0 comments on commit 8914309

Please sign in to comment.