mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-05-06 15:56:20 +02:00
Merge branch 'enhancement-authtypes_refactor'
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user