Created findOrCreateOauth user function
This commit is contained in:
@ -43,60 +43,58 @@ var users = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
addUser: function(username, password, role, callback) {
|
addUser: function(username, password, role, callback) {
|
||||||
if (this.findByUsername(username) !== undefined) {
|
if (this.findByUsername(username)) {
|
||||||
return callback("UserAlreadyExists");
|
return callback("UserAlreadyExists");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clean up when 500 users reached
|
|
||||||
if(users.length > 500) {
|
|
||||||
users = users.slice(0, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
var user = new User({
|
var user = new User({
|
||||||
id: _.max(users, function(user) { return user.id; }).id + 1,
|
|
||||||
username: username,
|
username: username,
|
||||||
password: password,
|
password: password,
|
||||||
role: role
|
role: role
|
||||||
});
|
});
|
||||||
users.push(user);
|
|
||||||
|
user.save(function(err) {
|
||||||
callback(null, user);
|
callback(null, user);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
findOrCreateOauthUser: function(provider, providerId) {
|
findOrCreateOauthUser: function(provider, providerId) {
|
||||||
var user = module.exports.findByProviderId(provider, providerId);
|
User.findOne({ $where: provider + '===' + providerId }, function(err, user) {
|
||||||
if(!user) {
|
if (user) {
|
||||||
|
return user;
|
||||||
|
} else {
|
||||||
user = {
|
user = {
|
||||||
id: _.max(users, function(user) { return user.id; }).id + 1,
|
username: provider + '_user',
|
||||||
username: provider + '_user', // Should keep Oauth users anonymous on demo site
|
|
||||||
role: userRoles.user,
|
role: userRoles.user,
|
||||||
provider: provider
|
provider: provider
|
||||||
};
|
};
|
||||||
user[provider] = providerId;
|
user[provider] = providerId;
|
||||||
users.push(user);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
user.save(function(err) {
|
||||||
return user;
|
return user;
|
||||||
},
|
});
|
||||||
|
|
||||||
findAll: function() {
|
|
||||||
return _.map(users, function(user) { return _.clone(user); });
|
|
||||||
},
|
|
||||||
|
|
||||||
findById: function(id) {
|
|
||||||
return _.clone(_.find(users, function(user) { return user.id === id }));
|
|
||||||
},
|
|
||||||
|
|
||||||
findByUsername: function(username) {
|
|
||||||
User.findOne({ username: username }, function(err, user) {
|
|
||||||
if (user) {
|
|
||||||
return user;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
findByProviderId: function(provider, id) {
|
findAll: function() {
|
||||||
return _.find(users, function(user) { return user[provider] === id; });
|
User.find(function(err, users) {
|
||||||
|
return users;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
findById: function(id) {
|
||||||
|
User.findById(id, function(err, user) {
|
||||||
|
if (user) return user;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
findByUsername: function(username) {
|
||||||
|
User.findOne({ username: username }, function(err, user) {
|
||||||
|
if (user) return user;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
validate: function(user) {
|
validate: function(user) {
|
||||||
|
Reference in New Issue
Block a user