98c8761d792e9efd52c3ad089fcad6219e110bb5
[ndcode_site.git] / _lib / session_cookie.jst
1 let XDate = require('xdate')
2
3 return async (env, transaction) => {
4   let sessions = await (
5     await transaction.get({})
6   ).get('sessions', {})
7
8   let session = await sessions.get(env.session_key)
9   if (session === undefined) {
10     // this should never happen, but could happen if we take more than a day
11     // to process an incoming request, and database is cleaned in the meantime
12     let expires = new XDate(env.now)
13     expires.addDays(1)
14     session = Transaction.json_to_logjson({expires: expires.getTime()})
15     sessions.set(env.session_key, session)
16   }
17
18   env.signed_in_as = await session.get_json('signed_in_as', null)
19   return session
20 }