--- /dev/null
+return async (env, transaction, session) => {
+ let accounts = await (
+ await transaction.get({})
+ ).get('accounts', {})
+
+ let signed_in_as = await session.get('signed_in_as', null)
+ return (
+ signed_in_as !== null ?
+ await accounts.get(signed_in_as, {}) :
+ undefined
+ )
+}
session = Transaction.json_to_logjson({expires: expires.getTime()})
sessions.set(env.session_key, session)
}
-
- env.signed_in_as = await session.get_json('signed_in_as', null)
return session
}
return async (env, head, body, scripts) => {
//let cart = await _require('/online_store/cart.jst')
+ let get_session = await _require('/_lib/get_session.jst')
//let icon_cart_small = await env.site.get_min_svg('/_svg/icon_cart_small.svg')
let icon_search_mono = await env.site.get_min_svg('/_svg/icon_search_mono.svg')
let logo_large = await env.site.get_min_svg('/_svg/logo_large.svg')
// initialize env.cart
//await cart(env)
+ let transaction = await env.site.Transaction()
+ let signed_in_as
+ try {
+ let session = await get_session(env, transaction)
+ signed_in_as = session.get_json('signed_in_as', null)
+ }
+ finally {
+ transaction.rollback()
+ }
+
await page(
env,
// head
div.'col-sm-4' {
div.'mb-1'.text-right {
span#signed-in-status {
- if (env.signed_in_as !== null)
- 'Signed in.' //`Signed in as ${env.signed_in_as}.`
+ if (signed_in_as !== null)
+ 'Signed in.' //`Signed in as ${signed_in_as}.`
else
'Browsing as guest.'
}
' '
- if (env.signed_in_as !== null)
+ if (signed_in_as !== null)
a#sign-in(href="#" style="display: none;") {'Sign in'}
else
a#sign-in(href="#") {'Sign in'}
' '
- if (env.signed_in_as !== null)
+ if (signed_in_as !== null)
a#sign-up(href="/my_account/sign_up/index.html" style="display: none;") {'Sign up'}
else
a#sign-up(href="/my_account/sign_up/index.html") {'Sign up'}
' '
- if (env.signed_in_as !== null)
+ if (signed_in_as !== null)
a#sign-out(href="#") {'Sign out'}
else
a#sign-out(href="#" style="display: none;") {'Sign out'}
let XDate = require('xdate')
return async env => {
- let post_request = await _require('/_lib/post_request.jst')
+ let get_account = await _require('/_lib/get_account.jst')
let get_session = await _require('/_lib/get_session.jst')
+ let post_request = await _require('/_lib/post_request.jst')
let Problem = await _require('/_lib/Problem.jst')
await post_request(
async () => {
let transaction = await env.site.database.Transaction()
try {
- // initialize env.session_key, set cookie in env.response
- await get_session(env, transaction)
- if (env.signed_in_as === null)
+ let account = await get_account(
+ env,
+ transaction,
+ await get_session(env, transaction)
+ )
+ if (account === undefined)
throw new Problem('Unauthorized', 'Please sign in first.', 401)
- let account = await (
- await (
- await transaction.get({})
- ).get('accounts', {})
- ).get(env.signed_in_as)
let details = {
given_names: await account.get_json('given_names'),
family_name: await account.get_json('family_name'),
let XDate = require('xdate')
return async env => {
- let post_request = await _require('/_lib/post_request.jst')
+ let get_account = await _require('/_lib/get_account.jst')
let get_session = await _require('/_lib/get_session.jst')
+ let post_request = await _require('/_lib/post_request.jst')
let Problem = await _require('/_lib/Problem.jst')
await post_request(
let transaction = await env.site.database.Transaction()
try {
- // initialize env.session_key, set cookie in env.response
- await get_session(env, transaction)
- if (env.signed_in_as === null)
+ let account = await get_account(
+ env,
+ transaction,
+ await get_session(env, transaction)
+ )
+ if (account === undefined)
throw new Problem('Unauthorized', 'Please sign in first.', 401)
- let account = await (
- await (
- await transaction.get({})
- ).get('accounts', {})
- ).get(env.signed_in_as)
account.set_json('given_names', details.given_names)
account.set_json('family_name', details.family_name)
account.set_json('contact_me', details.contact_me)
-
await transaction.commit()
}
catch (error) {
let XDate = require('xdate')
return async env => {
- let post_request = await _require('/_lib/post_request.jst')
+ let get_account = await _require('/_lib/get_account.jst')
let get_session = await _require('/_lib/get_session.jst')
+ let post_request = await _require('/_lib/post_request.jst')
let Problem = await _require('/_lib/Problem.jst')
await post_request(
let transaction = await env.site.database.Transaction()
try {
- // initialize env.session_key, set cookie in env.response
- await get_session(env, transaction)
- if (env.signed_in_as === null)
+ let account = await get_account(
+ env,
+ transaction,
+ await get_session(env, transaction)
+ )
+ if (account === undefined)
throw new Problem('Unauthorized', 'Please sign in first.', 401)
- let account = await (
- await (
- await transaction.get({})
- ).get('accounts', {})
- ).get(env.signed_in_as)
-
if (old_password !== await account.get_json('password'))
throw new Problem(
'Incorrect password',
let XDate = require('xdate')
return async env => {
- let post_request = await _require('/_lib/post_request.jst')
+ let get_account = await _require('/_lib/get_account.jst')
let get_session = await _require('/_lib/get_session.jst')
+ let post_request = await _require('/_lib/post_request.jst')
let Problem = await _require('/_lib/Problem.jst')
await post_request(
async () => {
let transaction = await env.site.database.Transaction()
try {
- // initialize env.session_key, set cookie in env.response
- await get_session(env, transaction)
- if (env.signed_in_as === null)
+ let account = await get_account(
+ env,
+ transaction,
+ await get_session(env, transaction)
+ )
+ if (account === undefined)
throw new Problem('Unauthorized', 'Please sign in first.', 401)
-
- let root = await transaction.get({})
- let account = await (
- await root.get('accounts', {})
- ).get(env.signed_in_as)
if (!await account.get_json('administrator'))
throw new Problem('Unauthorized', 'Not administrator.', 401)
- globals = await root.get_json('globals', {})
+ globals = await (await transaction.get({})).get_json('globals', {})
await transaction.commit()
return globals
let transaction = await env.site.database.Transaction()
try {
- // initialize env.session_key, set cookie in env.response
- await get_session(env, transaction)
- if (env.signed_in_as === null)
+ let account = await get_account(
+ env,
+ transaction,
+ await get_session(env, transaction)
+ )
+ if (account === undefined)
throw new Problem('Unauthorized', 'Please sign in first.', 401)
-
- let root = await transaction.get({})
- let account = await (
- await root.get('accounts', {})
- ).get(env.signed_in_as)
if (!await account.get_json('administrator'))
throw new Problem('Unauthorized', 'Not administrator.', 401)
- root.set_json('globals', globals)
+ ;(await transaction.get({})).set_json('globals', globals)
await transaction.commit()
}
catch (error) {
let XDate = require('xdate')
return async env => {
- let post_request = await _require('/_lib/post_request.jst')
+ let get_account = await _require('/_lib/get_account.jst')
let get_session = await _require('/_lib/get_session.jst')
+ let post_request = await _require('/_lib/post_request.jst')
let Problem = await _require('/_lib/Problem.jst')
await post_request(
async () => {
let transaction = await env.site.database.Transaction()
try {
- // initialize env.session_key, set cookie in env.response
- await get_session(env, transaction)
- if (env.signed_in_as === null)
+ let account = await get_account(
+ env,
+ transaction,
+ await get_session(env, transaction)
+ )
+ if (account === undefined)
throw new Problem('Unauthorized', 'Please sign in first.', 401)
- let root = await transaction.get({})
- let account = await (
- await root.get('accounts', {})
- ).get(env.signed_in_as)
if (!await account.get_json('administrator'))
throw new Problem('Unauthorized', 'Not administrator.', 401)
- nodemailer = await root.get_json('nodemailer', {})
+ nodemailer = await (
+ await transaction.get({})
+ ).get_json('nodemailer', {})
await transaction.commit()
return nodemailer
let XDate = require('xdate')
return async env => {
- let post_request = await _require('/_lib/post_request.jst')
+ let get_account = await _require('/_lib/get_account.jst')
let get_session = await _require('/_lib/get_session.jst')
+ let post_request = await _require('/_lib/post_request.jst')
let Problem = await _require('/_lib/Problem.jst')
await post_request(
let transaction = await env.site.database.Transaction()
try {
- // initialize env.session_key, set cookie in env.response
- await get_session(env, transaction)
- if (env.signed_in_as === null)
+ let account = await get_account(
+ env,
+ transaction,
+ await get_session(env, transaction)
+ )
+ if (account === undefined)
throw new Problem('Unauthorized', 'Please sign in first.', 401)
- let root = await transaction.get({})
- let account = await (
- await root.get('accounts', {})
- ).get(env.signed_in_as)
if (!await account.get_json('administrator'))
throw new Problem('Unauthorized', 'Not administrator.', 401)
- root.set_json('nodemailer', nodemailer)
+ ;(await transaction.get({})).set_json('nodemailer', nodemailer)
await transaction.commit()
}
catch (error) {
return async env => {
let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+ let get_account = await _require('/_lib/get_account.jst')
+ let get_session = await _require('/_lib/get_session.jst')
let icon_cross = await env.site.get_min_svg('/_svg/icon_cross.svg')
let icon_tick = await env.site.get_min_svg('/_svg/icon_tick.svg')
let menu = await env.site.get_menu('/my_account/_menu.json')
let navbar = await _require('/_lib/navbar.jst')
- let get_session = await _require('/_lib/get_session.jst')
// see whether signed in, if so preload details, and draft details if any
- let
- transaction = await env.site.database.Transaction(),
- details,
- draft_details
+ let transaction = await env.site.database.Transaction()
+ let signed_in_as, details, draft_details
try {
- // initialize env.session_key, set cookie in env.response
let session = await get_session(env, transaction)
- if (env.signed_in_as) {
- account = await (
- await (
- await transaction.get({})
- ).get('accounts')
- ).get(env.signed_in_as)
+ signed_in_as = await session.get_json('signed_in_as', null)
+
+ let account = await get_account(env, transaction, session)
+ if (account !== undefined) {
details = {
given_names: await account.get_json('given_names'),
family_name: await account.get_json('family_name'),
async _out => {
await breadcrumbs(env, _out)
- if (env.signed_in_as) {
+ if (signed_in_as !== null) {
// signed in
p {'Your given names are visible to other users if you comment on our blog. Your email and family name remain private. If your name is one word or does not fit given names/family name pattern, then please enter given names only.'}
}
}
- if (env.signed_in_as) {
+ if (signed_in_as !== null) {
//script(src="/js/api_call.js") {}
script {