Added schema and finduserbyid to the new Users model file
This commit is contained in:
34
server.js
34
server.js
@ -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
|
||||
*/
|
||||
|
@ -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) {
|
||||
|
Reference in New Issue
Block a user