4 * Populates nevLinks with (currently hardcoded) session-related links.
5 * @param {Number} pagePathLevel relative to base
7 * @param {String=} ctx.url redirect on logout
8 * @param {Object=} ctx.session
9 * @param {String=} ctx.session.authenticatedIdentifier
10 * @param {String=} ctx.session.authenticatedProfile
11 * @param {Object} options
12 * @param {Object[]=} options.navLinks created if not present
13 * @param {String=} options.pageIdentifier
15 function sessionNavLinks(pagePathLevel
, ctx
, options
) {
16 if (!options
.navLinks
) {
17 options
.navLinks
= [];
19 const rootPath
= '../'.repeat(pagePathLevel
);
20 const redirectQuery
= ctx
?.url
? `?r=${encodeURIComponent(ctx.url)}` : rootPath
;
21 const adminPath
= rootPath
+ 'admin/';
23 const user
= ctx
?.session
?.authenticatedProfile
|| ctx
?.session
?.authenticatedIdentifier
;
25 if (options
.pageIdentifier
!== 'account') {
26 options
.navLinks
.push({
28 href: `${adminPath}settings`,
31 options
.navLinks
.push({
32 text: `Logout (${user})`,
33 href: `${adminPath}logout${redirectQuery}`,
36 options
.navLinks
.push({
38 href: `${adminPath}login${redirectQuery}`,