diff options
Diffstat (limited to 'server')
| -rw-r--r-- | server/index.js | 3 | ||||
| -rw-r--r-- | server/lib/auth/index.js | 10 | ||||
| -rw-r--r-- | server/lib/middleware.js | 11 | ||||
| -rw-r--r-- | server/lib/util.js | 4 | ||||
| -rw-r--r-- | server/repl.js | 17 |
5 files changed, 38 insertions, 7 deletions
diff --git a/server/index.js b/server/index.js index 4fbd8d1..9a9323c 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') // @@ -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/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 7b37658..4848ab0 100644 --- a/server/lib/middleware.js +++ b/server/lib/middleware.js @@ -33,6 +33,17 @@ var middleware = { } next(); }, + + ensureIP: function (req, res, next) { + 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() + } + next() + }, ensureLocals: function (req, res, next) { res.locals.token = req.csrfToken(); 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]); } 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); + }); +}); |
