Added schema and finduserbyid to the new Users model file

This commit is contained in:
Sahat Yalkabov
2013-11-13 18:58:03 -05:00
parent 14c406bc33
commit 7b86a34a6a
2 changed files with 212 additions and 182 deletions

View File

@ -1,25 +1,38 @@
var express = require('express'),
mongoose = require('mongoose'),
http = require('http'),
path = require('path'),
fs = require('fs'),
mongoose = require('mongoose'),
passport = require('passport'),
config = require('./conf');
var User = require('./server/models/User');
var db = mongoose.connect(config.db);
var app = express();
/**
* Express Settings
*/
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/client/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieSession({ secret: process.env.COOKIE_SECRET || 'secret' }));
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
app.use(express.static(config.root + '/public'));
passport.use(User.localStrategy);
passport.use(User.twitterStrategy());
passport.use(User.facebookStrategy());
passport.use(User.googleStrategy());
passport.use(User.linkedInStrategy());
passport.serializeUser(User.serializeUser);
passport.deserializeUser(User.deserializeUser);
/**
* API Controllers
@ -28,13 +41,6 @@ var articles = require('./controllers/articles');
var users = require('./controllers/users');
/**
* API Models
*/
var Article = require('./models/article');
var User = require('./models/user');
/**
* API Routes
*/

View File

@ -1,13 +1,31 @@
var User
, _ = require('underscore')
, passport = require('passport')
, LocalStrategy = require('passport-local').Strategy
, TwitterStrategy = require('passport-twitter').Strategy
, FacebookStrategy = require('passport-facebook').Strategy
, GoogleStrategy = require('passport-google').Strategy
, LinkedInStrategy = require('passport-linkedin').Strategy
, check = require('validator').check
, userRoles = require('../../client/js/routingConfig').userRoles;
var _ = require('underscore'),
mongoose = require('mongoose'),
crypto = require('crypto'),
passport = require('passport'),
LocalStrategy = require('passport-local').Strategy,
TwitterStrategy = require('passport-twitter').Strategy,
FacebookStrategy = require('passport-facebook').Strategy,
GoogleStrategy = require('passport-google').Strategy,
LinkedInStrategy = require('passport-linkedin').Strategy,
check = require('validator').check,
userRoles = require('../../client/js/routingConfig').userRoles;
var UserSchema = new mongoose.Schema({
name: String,
email: String,
username: {
type: String,
unique: true
},
provider: String,
hashed_password: String,
salt: String,
facebook: {},
twitter: {},
google: {}
});
var User = mongoose.model('User', UserSchema);
var users = [
{
@ -26,19 +44,21 @@ var users = [
module.exports = {
addUser: function(username, password, role, callback) {
if(this.findByUsername(username) !== undefined) return callback("UserAlreadyExists");
if (this.findByUsername(username) !== undefined) {
return callback("UserAlreadyExists");
}
// Clean up when 500 users reached
if(users.length > 500) {
users = users.slice(0, 2);
}
var user = {
var user = new User({
id: _.max(users, function(user) { return user.id; }).id + 1,
username: username,
password: password,
role: role
};
});
users.push(user);
callback(null, user);
},
@ -68,7 +88,11 @@ module.exports = {
},
findByUsername: function(username) {
return _.clone(_.find(users, function(user) { return user.username === username; }));
User.findOne({ username: username }, function(err, user) {
if (user) {
return user;
}
});
},
findByProviderId: function(provider, id) {