diff --git a/services/web/app/coffee/Features/Helpers/EmailHelper.coffee b/services/web/app/coffee/Features/Helpers/EmailHelper.coffee index d45447788d..8b769c1669 100644 --- a/services/web/app/coffee/Features/Helpers/EmailHelper.coffee +++ b/services/web/app/coffee/Features/Helpers/EmailHelper.coffee @@ -4,6 +4,7 @@ module.exports = EmailHelper = parseEmail: (email) -> return null unless email? + return null if email.length > 254 email = email.trim().toLowerCase() matched = email.match EMAIL_REGEXP diff --git a/services/web/app/coffee/models/User.coffee b/services/web/app/coffee/models/User.coffee index 230e8835a0..a8717ac3ac 100644 --- a/services/web/app/coffee/models/User.coffee +++ b/services/web/app/coffee/models/User.coffee @@ -6,10 +6,13 @@ uuid = require('uuid') Schema = mongoose.Schema ObjectId = Schema.ObjectId +# See https://stackoverflow.com/questions/386294/what-is-the-maximum-length-of-a-valid-email-address/574698#574698 +MAX_EMAIL_LENGTH = 254 + UserSchema = new Schema - email : {type : String, default : ''} + email : {type : String, default : '', maxlength: MAX_EMAIL_LENGTH } emails: [{ - email: { type : String, default : '' }, + email: { type : String, default : '', maxlength: MAX_EMAIL_LENGTH }, reversedHostname: { type : String, default : '' }, createdAt: { type : Date, default: () -> new Date() }, confirmedAt: { type: Date }