Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / express-session / session / store.js
1
2 /*!
3  * Connect - session - Store
4  * Copyright(c) 2010 Sencha Inc.
5  * Copyright(c) 2011 TJ Holowaychuk
6  * MIT Licensed
7  */
8
9 /**
10  * Module dependencies.
11  */
12
13 var EventEmitter = require('events').EventEmitter
14   , Session = require('./session')
15   , Cookie = require('./cookie');
16
17 /**
18  * Initialize abstract `Store`.
19  *
20  * @api private
21  */
22
23 var Store = module.exports = function Store(options){};
24
25 /**
26  * Inherit from `EventEmitter.prototype`.
27  */
28
29 Store.prototype.__proto__ = EventEmitter.prototype;
30
31 /**
32  * Re-generate the given requests's session.
33  *
34  * @param {IncomingRequest} req
35  * @return {Function} fn
36  * @api public
37  */
38
39 Store.prototype.regenerate = function(req, fn){
40   var self = this;
41   this.destroy(req.sessionID, function(err){
42     self.generate(req);
43     fn(err);
44   });
45 };
46
47 /**
48  * Load a `Session` instance via the given `sid`
49  * and invoke the callback `fn(err, sess)`.
50  *
51  * @param {String} sid
52  * @param {Function} fn
53  * @api public
54  */
55
56 Store.prototype.load = function(sid, fn){
57   var self = this;
58   this.get(sid, function(err, sess){
59     if (err) return fn(err);
60     if (!sess) return fn();
61     var req = { sessionID: sid, sessionStore: self };
62     sess = self.createSession(req, sess);
63     fn(null, sess);
64   });
65 };
66
67 /**
68  * Create session from JSON `sess` data.
69  *
70  * @param {IncomingRequest} req
71  * @param {Object} sess
72  * @return {Session}
73  * @api private
74  */
75
76 Store.prototype.createSession = function(req, sess){
77   var expires = sess.cookie.expires
78     , orig = sess.cookie.originalMaxAge;
79   sess.cookie = new Cookie(sess.cookie);
80   if ('string' == typeof expires) sess.cookie.expires = new Date(expires);
81   sess.cookie.originalMaxAge = orig;
82   req.session = new Session(req, sess);
83   return req.session;
84 };