From 47c3a54e2e5935e4db526637ef3f108bd98fce9c Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 12:40:17 -0500 Subject: add repl script, preloads schema --- server/repl.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 server/repl.js (limited to 'server') diff --git a/server/repl.js b/server/repl.js new file mode 100644 index 0000000..ba94d45 --- /dev/null +++ b/server/repl.js @@ -0,0 +1,17 @@ +var DB_HOST = 'localhost' +var mongoose = require('mongoose') +mongoose.connect('mongodb://' + DB_HOST + '/vvalls', {}, function(){ + console.log("vvalls: connected to", DB_HOST) + var repl = require("repl").start({}); + [ "./lib/schemas/User", + "./lib/schemas/Collaborator", + "./lib/schemas/Documentation", + "./lib/schemas/Layout", + "./lib/schemas/Media", + "./lib/schemas/Project", + ].forEach(function(modName){ + // console.log(name, modName) + var namez = modName.split("/"), name = namez[namez.length-1]; + repl.context[name] = require(modName); + }); +}); -- cgit v1.2.3-70-g09d2 From 5d3b848b729c06bda5d4d6d3834b110dcbb3ef71 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:08:04 -0500 Subject: use req.ips[0] --- server/lib/auth/index.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'server') diff --git a/server/lib/auth/index.js b/server/lib/auth/index.js index 0c46105..79f1e34 100644 --- a/server/lib/auth/index.js +++ b/server/lib/auth/index.js @@ -86,9 +86,9 @@ var auth = { return res.redirect('/auth/usernameTaken'); } if (! user.created_ip) { - user.created_ip = util.ip2num( req.ip ) + user.created_ip = util.ip2num( req.ips[0] ) } - user.last_ip = util.ip2num( req.ip ) + user.last_ip = util.ip2num( req.ips[0] ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -111,7 +111,7 @@ var auth = { } user.last_seen = new Date () - user.last_ip = util.ip2num( req.ip ) + user.last_ip = util.ip2num( req.ips[0] ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -171,8 +171,8 @@ var auth = { displayName: username, password: password, email: email, - created_ip: util.ip2num( req.ip ), - last_ip: util.ip2num( req.ip ), + created_ip: util.ip2num( req.ips[0] ), + last_ip: util.ip2num( req.ips[0] ), created_at: new Date (), last_seen: new Date (), } -- cgit v1.2.3-70-g09d2 From 9d5c4dcc8e45e96ee9a976ca337a9d389750fb8a Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:10:03 -0500 Subject: sanity check --- server/lib/util.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'server') diff --git a/server/lib/util.js b/server/lib/util.js index 1f63a30..273d7d1 100644 --- a/server/lib/util.js +++ b/server/lib/util.js @@ -45,7 +45,9 @@ util.cleanQuery = function (query) { } util.ip2num = function(dot) { - var d = dot.split('.'); + console.log(dot); + + var d = (dot || "127.0.0.1").split('.'); return ((((((+d[0])*256)+(+d[1]))*256)+(+d[2]))*256)+(+d[3]); } -- cgit v1.2.3-70-g09d2 From 74c1e0ca2b343eb9084a90e7a9490f58cb2c81d1 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:12:00 -0500 Subject: databaseHost --- config.json.example | 1 + server/index.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'server') diff --git a/config.json.example b/config.json.example index 90df381..6028021 100644 --- a/config.json.example +++ b/config.json.example @@ -3,6 +3,7 @@ "hostName": "lvh.me", "port": 3000, "socketPort": 1337, + "databaseHost": "lvh.me", "pageSize": 10, "env": { "development": 1 } } diff --git a/server/index.js b/server/index.js index 4fbd8d1..e817566 100644 --- a/server/index.js +++ b/server/index.js @@ -20,7 +20,7 @@ var http = require('http'), var app = express() var server -var DATABASE_URI = process.env.MONGOLAB_URI || ('mongodb://' + config.hostName + '/vvalls') +var DATABASE_URI = process.env.MONGOLAB_URI || ('mongodb://' + config.databaseHost + '/vvalls') // -- cgit v1.2.3-70-g09d2 From 668241bbbc5150f8d4f573be9a1b4c17c1d017b6 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:29:02 -0500 Subject: cache x-forwarded-for ip address on session object --- server/index.js | 1 + server/lib/middleware.js | 9 +++++++++ 2 files changed, 10 insertions(+) (limited to 'server') diff --git a/server/index.js b/server/index.js index e817566..9a9323c 100644 --- a/server/index.js +++ b/server/index.js @@ -68,6 +68,7 @@ site.setup = function(){ // Essential middleware // app.all('*', middleware.enableCORS); app.all('*', middleware.ensureLocals); + app.all('*', middleware.ensureIP); server = http.createServer(app) server.listen(app.get('port'), function () { diff --git a/server/lib/middleware.js b/server/lib/middleware.js index 7b37658..ad0d228 100644 --- a/server/lib/middleware.js +++ b/server/lib/middleware.js @@ -33,6 +33,15 @@ var middleware = { } next(); }, + + ensureIP: function (req, res, next) { + if (req.ips) { + req.ip = req.session.ip = req.ips[0] + } + else { + req.ip = req.session.ip || "127.0.0.1" + } + }, ensureLocals: function (req, res, next) { res.locals.token = req.csrfToken(); -- cgit v1.2.3-70-g09d2 From 0965d0011f1858adae736cfd4df8e88cf1e24893 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:30:56 -0500 Subject: z --- server/lib/auth/index.js | 10 +++++----- server/lib/middleware.js | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'server') diff --git a/server/lib/auth/index.js b/server/lib/auth/index.js index 79f1e34..0c46105 100644 --- a/server/lib/auth/index.js +++ b/server/lib/auth/index.js @@ -86,9 +86,9 @@ var auth = { return res.redirect('/auth/usernameTaken'); } if (! user.created_ip) { - user.created_ip = util.ip2num( req.ips[0] ) + user.created_ip = util.ip2num( req.ip ) } - user.last_ip = util.ip2num( req.ips[0] ) + user.last_ip = util.ip2num( req.ip ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -111,7 +111,7 @@ var auth = { } user.last_seen = new Date () - user.last_ip = util.ip2num( req.ips[0] ) + user.last_ip = util.ip2num( req.ip ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -171,8 +171,8 @@ var auth = { displayName: username, password: password, email: email, - created_ip: util.ip2num( req.ips[0] ), - last_ip: util.ip2num( req.ips[0] ), + created_ip: util.ip2num( req.ip ), + last_ip: util.ip2num( req.ip ), created_at: new Date (), last_seen: new Date (), } diff --git a/server/lib/middleware.js b/server/lib/middleware.js index ad0d228..2d24693 100644 --- a/server/lib/middleware.js +++ b/server/lib/middleware.js @@ -38,9 +38,10 @@ var middleware = { if (req.ips) { req.ip = req.session.ip = req.ips[0] } - else { + else if (req.session.ip) { req.ip = req.session.ip || "127.0.0.1" } + next() }, ensureLocals: function (req, res, next) { -- cgit v1.2.3-70-g09d2 From 58e1ca092e01da7b13e133a0ea50c9767bd48744 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:35:21 -0500 Subject: session.save --- server/lib/middleware.js | 1 + 1 file changed, 1 insertion(+) (limited to 'server') diff --git a/server/lib/middleware.js b/server/lib/middleware.js index 2d24693..173701d 100644 --- a/server/lib/middleware.js +++ b/server/lib/middleware.js @@ -37,6 +37,7 @@ var middleware = { ensureIP: function (req, res, next) { if (req.ips) { req.ip = req.session.ip = req.ips[0] + req.session.save() } else if (req.session.ip) { req.ip = req.session.ip || "127.0.0.1" -- cgit v1.2.3-70-g09d2 From c9325286ba7fcb38166deff8937105789edfb1d2 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 24 Nov 2014 17:40:53 -0500 Subject: need to store ip on the session due to haproxy --- server/lib/auth/index.js | 10 +++++----- server/lib/middleware.js | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'server') diff --git a/server/lib/auth/index.js b/server/lib/auth/index.js index 0c46105..a9a2400 100644 --- a/server/lib/auth/index.js +++ b/server/lib/auth/index.js @@ -86,9 +86,9 @@ var auth = { return res.redirect('/auth/usernameTaken'); } if (! user.created_ip) { - user.created_ip = util.ip2num( req.ip ) + user.created_ip = util.ip2num( req.session.ip ) } - user.last_ip = util.ip2num( req.ip ) + user.last_ip = util.ip2num( req.session.ip ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -111,7 +111,7 @@ var auth = { } user.last_seen = new Date () - user.last_ip = util.ip2num( req.ip ) + user.last_ip = util.ip2num( req.session.ip ) user.save(function(err, data){ if (err) console.err('error setting ip for user') }) req.logIn(user, function(err) { @@ -171,8 +171,8 @@ var auth = { displayName: username, password: password, email: email, - created_ip: util.ip2num( req.ip ), - last_ip: util.ip2num( req.ip ), + created_ip: util.ip2num( req.session.ip ), + last_ip: util.ip2num( req.session.ip ), created_at: new Date (), last_seen: new Date (), } diff --git a/server/lib/middleware.js b/server/lib/middleware.js index 173701d..4848ab0 100644 --- a/server/lib/middleware.js +++ b/server/lib/middleware.js @@ -35,13 +35,13 @@ var middleware = { }, ensureIP: function (req, res, next) { - if (req.ips) { + if (req.session.ip) { + req.ip = req.session.ip || "127.0.0.1" + } + else if (req.ips) { req.ip = req.session.ip = req.ips[0] req.session.save() } - else if (req.session.ip) { - req.ip = req.session.ip || "127.0.0.1" - } next() }, -- cgit v1.2.3-70-g09d2