feat(auth): add login/logout, user identity, and soft auth gate
- api/logout.php: destroys session + clears cookie, redirects to / - api/guest-session.php: sets guest flag, lets users explore without account - layout.php: removes hard PHP redirect; authenticated users see email + "Logg ut" in topbar; guests see guest banner (sticky, dismissible) and auth gate modal (dismissible via localStorage) instead of redirect - layout_footer.php: injects auth gate modal + JS for banner/modal dismiss - layout_dashboard.php: adds username + "Logg ut" to dash-topbar - index.php: adds "Utforsk uten konto" link under primary login CTA - tools.css: .guest-banner, .auth-gate-*, .topbar-user, .dash-topbar__user Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -37,6 +37,13 @@ $dashboardTitle = $dashboardTitle ?? 'Dashboard';
|
||||
$dashboardLead = $dashboardLead ?? '';
|
||||
$langPath = strtok((string)($_SERVER['REQUEST_URI'] ?? '/dashboard/'), '?') ?: '/dashboard/';
|
||||
|
||||
$dashAuthUser = dbnToolsAuthenticatedUser();
|
||||
$dashUserDisplay = '';
|
||||
if ($dashAuthUser !== null) {
|
||||
$email = (string)($dashAuthUser['email'] ?? '');
|
||||
$dashUserDisplay = strstr($email, '@', true) ?: $email;
|
||||
}
|
||||
|
||||
$dashboardNav = [
|
||||
'index' => ['url' => '/dashboard/', 'label' => 'Oversikt', 'sub' => 'Overview'],
|
||||
'documents' => ['url' => '/dashboard/documents.php', 'label' => 'Dokumenter', 'sub' => 'Documents'],
|
||||
@@ -78,6 +85,12 @@ window.DBN_DASHBOARD = {
|
||||
<nav class="dash-topbar__tools" aria-label="Tools">
|
||||
<a href="/dashboard.php" class="dash-topbar__link">← Tilbake til verktøy</a>
|
||||
</nav>
|
||||
<div class="dash-topbar__user">
|
||||
<?php if ($dashUserDisplay !== ''): ?>
|
||||
<span class="dash-topbar__username" title="<?= htmlspecialchars($dashAuthUser['email'] ?? '') ?>"><?= htmlspecialchars($dashUserDisplay) ?></span>
|
||||
<?php endif; ?>
|
||||
<a href="/api/logout.php" class="dash-topbar__logout">Logg ut</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="dash-layout">
|
||||
|
||||
Reference in New Issue
Block a user