diff --git a/app/models/user.js b/app/models/user.js index ca11b811..d3bfcbc6 100755 --- a/app/models/user.js +++ b/app/models/user.js @@ -5,9 +5,7 @@ */ var mongoose = require('mongoose'), Schema = mongoose.Schema, - crypto = require('crypto'), - authTypes = ['github', 'twitter', 'facebook', 'google']; - + crypto = require('crypto'); /** * User Schema @@ -49,26 +47,26 @@ var validatePresenceOf = function(value) { // the below 4 validations only apply if you are signing up traditionally UserSchema.path('name').validate(function(name) { // if you are authenticating by any of the oauth strategies, don't validate - if (authTypes.indexOf(this.provider) !== -1) return true; - return name.length; + if (!this.provider) return true; + return (typeof name === 'string' && name.length > 0); }, 'Name cannot be blank'); UserSchema.path('email').validate(function(email) { // if you are authenticating by any of the oauth strategies, don't validate - if (authTypes.indexOf(this.provider) !== -1) return true; - return email.length; + if (!this.provider) return true; + return (typeof email === 'string' && email.length > 0); }, 'Email cannot be blank'); UserSchema.path('username').validate(function(username) { // if you are authenticating by any of the oauth strategies, don't validate - if (authTypes.indexOf(this.provider) !== -1) return true; - return username.length; + if (!this.provider) return true; + return (typeof username === 'string' && username.length > 0); }, 'Username cannot be blank'); UserSchema.path('hashed_password').validate(function(hashed_password) { // if you are authenticating by any of the oauth strategies, don't validate - if (authTypes.indexOf(this.provider) !== -1) return true; - return hashed_password.length; + if (!this.provider) return true; + return (typeof hashed_password === 'string' && hashed_password.length > 0); }, 'Password cannot be blank'); @@ -78,7 +76,7 @@ UserSchema.path('hashed_password').validate(function(hashed_password) { UserSchema.pre('save', function(next) { if (!this.isNew) return next(); - if (!validatePresenceOf(this.password) && authTypes.indexOf(this.provider) === -1) + if (!validatePresenceOf(this.password) && !this.provider) next(new Error('Invalid password')); else next();