overleaf/services/web/app/coffee/Features/User/UserRegistrationHandler.coffee
2014-02-12 10:23:40 +00:00

30 lines
952 B
CoffeeScript

sanitize = require('validator').sanitize
module.exports =
validateEmail : (email) ->
re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\ ".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA -Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
return re.test(email)
hasZeroLengths : (props) ->
hasZeroLength = false
props.forEach (prop) ->
if prop.length == 0
hasZeroLength = true
return hasZeroLength
validateRegisterRequest : (req, callback)->
email = sanitize(req.body.email).xss().trim().toLowerCase()
password = req.body.password
username = email.match(/^[^@]*/)
if username?
first_name = username[0]
else
first_name = ""
last_name = ""
if @hasZeroLengths([password, email])
callback('please fill in all the fields', null)
else if !@validateEmail(email)
callback('not valid email', null)
else
callback(null, {first_name:first_name, last_name:last_name, email:email, password:password})