feat(auth): wiki/activity access flags, SESSION_DOMAIN, wiki nav link

This commit is contained in:
Davide Scaini
2026-05-01 21:56:02 +02:00
parent f6e9fe8198
commit 82288a35ea
5 changed files with 161 additions and 59 deletions
+12 -1
View File
@@ -9,7 +9,8 @@ interface Props {
public?: boolean;
}
const { title = 'BincioActivity', description = 'Your personal activity stats', public: isPublicPage = false } = Astro.props;
const editUrl = import.meta.env.PUBLIC_EDIT_URL ?? '';
const editUrl = import.meta.env.PUBLIC_EDIT_URL ?? '';
const wikiUrl = import.meta.env.PUBLIC_WIKI_URL ?? '';
// Edit UI is enabled when PUBLIC_EDIT_URL is set (single-user bincio-edit mode)
// OR when PUBLIC_EDIT_ENABLED=true (multi-user VPS mode — API proxied at /api/).
const editEnabled = editUrl !== '' || import.meta.env.PUBLIC_EDIT_ENABLED === 'true';
@@ -217,6 +218,10 @@ try {
<a href={`${baseUrl}convert/`} class="text-sm text-zinc-400 hover:text-white transition-colors shrink-0">Convert</a>
)}
<a id="nav-about" href={`${baseUrl}about/`} class="text-sm text-zinc-400 hover:text-white transition-colors shrink-0">About</a>
{wikiUrl && (
<a id="nav-wiki" href={wikiUrl} style="display:none"
class="text-sm text-zinc-400 hover:text-white transition-colors shrink-0">Wiki</a>
)}
</div>
)}
@@ -561,6 +566,12 @@ try {
}
} catch (_) {}
// Wiki link: show only for users who have wiki access
if (user.wiki_access) {
const wikiEl = document.getElementById('nav-wiki');
if (wikiEl) wikiEl.style.display = '';
}
// Admin: show admin link and poll for active jobs
if (user.is_admin) {
const adminLink = document.getElementById('nav-admin');