impress
Advanced tools
Comparing version 0.0.5 to 0.0.6
@@ -0,1 +1,9 @@ | ||
0.0.6 / 2010-06-16 | ||
================== | ||
* Added support for optional session persistence (see config: session.persist) | ||
* Removed vain session deletion when session identifier is empty | ||
* Fixed impress.saveSession | ||
* Fixed impress.restoreSession | ||
0.0.5 / 2010-06-15 | ||
@@ -2,0 +10,0 @@ ================== |
@@ -391,3 +391,3 @@ (function(impress) { | ||
req.post = impress.qs.parse(req.impress.data); | ||
impress.restoreSession(req, res) | ||
impress.restoreSession(req, res); | ||
}); | ||
@@ -553,19 +553,23 @@ } else impress.restoreSession(req, res); | ||
var sid = req.impress.cookies[impress.config.session.cookie]; | ||
if (impress.validateSID(sid)) { | ||
if (impress.sessions[sid]) { | ||
req.impress.session = sid; | ||
if (sid) { | ||
if (impress.validateSID(sid)) { | ||
if (impress.sessions[sid]) { | ||
req.impress.session = sid; | ||
impress.process(req, res); | ||
} else { | ||
if (impress.config.session.persist) { | ||
db.impress.sessions.findOne({ sid: sid }, function(err, session) { | ||
if (session) { | ||
req.impress.session = sid; | ||
impress.sessions[sid] = session.state; | ||
} else impress.deleteCookie(req, res, impress.config.session.cookie); | ||
impress.process(req, res); | ||
}); | ||
} else impress.process(req, res); | ||
} | ||
} else { | ||
impress.deleteCookie(req, res, impress.config.session.cookie); | ||
impress.process(req, res); | ||
} else { | ||
db.impress.sessions.findOne({ sid: sid }, function(err, session) { | ||
if (session) { | ||
req.impress.session = sid; | ||
impress.sessions[sid] = session.state; | ||
} else impress.deleteCookie(req, res, impress.config.session.cookie); | ||
impress.process(req, res); | ||
}); | ||
} | ||
} else { | ||
impress.deleteCookie(req, res, impress.config.session.cookie); | ||
impress.process(req, res); | ||
} | ||
} else impress.process(req, res); | ||
} | ||
@@ -576,6 +580,8 @@ | ||
impress.saveSession = function(req, res, callback) { | ||
var session = { sid: req.impress.session, state: impress.sessions[req.impress.session] }; | ||
if (req.impress.sessionCreated) db.impress.sessions.insert(session, callback); | ||
else if (req.impress.sessionModified) db.impress.sessions.update({ sid: req.impress.session }, session, callback); | ||
else callback(); | ||
if (impress.config.session.persist) { | ||
var session = { sid: req.impress.session, state: impress.sessions[req.impress.session] }; | ||
if (req.impress.sessionCreated) db.impress.sessions.insert(session, callback); | ||
else if (req.impress.sessionModified) db.impress.sessions.update({ sid: req.impress.session }, session, callback); | ||
else callback(); | ||
} else callback(); | ||
} | ||
@@ -879,3 +885,3 @@ | ||
var header = { | ||
'Transfer-Encoding': 'chunked', // почему chunked для всех | ||
'Transfer-Encoding': 'chunked', // todo: check is it good approach | ||
'Content-Type': impress.mimeTypes[ext] | ||
@@ -882,0 +888,0 @@ //'Cache-Control': 'no-cache, no-store, max-age =0, must-revalidate', |
{ | ||
"name": "impress", | ||
"version": "0.0.5", | ||
"version": "0.0.6", | ||
"author": "Timur Shemsedinov <timur.shemsedinov@gmail.com>", | ||
@@ -5,0 +5,0 @@ "description": "Impressive totalitarian style web application framework", |
520050
11251