loggedin user and new in front of Explorer in header

alphons <alphons@heijden.com> 19 Jul 2026, 11:55
97803cf7e996856bf12c76bfb47b902337468374
2 files changed
  • src/GitServer/Program.cs
  • src/GitServer/wwwroot/Shared/_Layout.cshtml
diff --git a/src/GitServer/Program.cs b/src/GitServer/Program.cs
index c772137..dde0bdb 100644
--- a/src/GitServer/Program.cs
+++ b/src/GitServer/Program.cs
@@ -2,7 +2,6 @@ using GitServer.Data;
using GitServer.Extensions;
using GitServer.Middleware;
using GitServer.Services;
-using Microsoft.AspNetCore.DataProtection;
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
diff --git a/src/GitServer/wwwroot/Shared/_Layout.cshtml b/src/GitServer/wwwroot/Shared/_Layout.cshtml
index 4c8c2fe..1f8fb88 100644
--- a/src/GitServer/wwwroot/Shared/_Layout.cshtml
+++ b/src/GitServer/wwwroot/Shared/_Layout.cshtml
@@ -4,75 +4,81 @@
<!DOCTYPE html>
<html lang="@L.CurrentLanguage">
<head>
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>@(ViewData["Title"] != null ? ViewData["Title"] + " — GitServer" : "GitServer")</title>
- <link rel="stylesheet" href="~/css/main.css" asp-append-version="true" />
- <link rel="stylesheet" href="~/css/components.css" asp-append-version="true" />
- <link rel="stylesheet" href="~/css/repo.css" asp-append-version="true" />
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>@(ViewData["Title"] != null ? ViewData["Title"] + " — GitServer" : "GitServer")</title>
+ <link rel="stylesheet" href="~/css/main.css" asp-append-version="true" />
+ <link rel="stylesheet" href="~/css/components.css" asp-append-version="true" />
+ <link rel="stylesheet" href="~/css/repo.css" asp-append-version="true" />
</head>
<body>
-<nav class="navbar">
- <div class="navbar-inner">
- <a class="navbar-brand" href="/">
- <svg class="brand-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
- <circle cx="12" cy="12" r="3"/><circle cx="12" cy="5" r="2"/><circle cx="12" cy="19" r="2"/>
- <circle cx="5" cy="12" r="2"/><circle cx="19" cy="12" r="2"/>
- <line x1="12" y1="7" x2="12" y2="10"/><line x1="12" y1="14" x2="12" y2="17"/>
- <line x1="7" y1="12" x2="10" y2="12"/><line x1="14" y1="12" x2="17" y2="12"/>
- </svg>
- GitServer
- </a>
- <button class="navbar-toggle" id="navToggle" aria-label="Menu">
- <span></span><span></span><span></span>
- </button>
- <div class="navbar-menu" id="navMenu">
- <a class="nav-link" href="/explore">@L["nav_explore"]</a>
- @if (SignInManager.IsSignedIn(User))
- {
- var currentUser = await UserManager.GetUserAsync(User);
- <a class="nav-link" href="/Repo/New">@L["nav_new"]</a>
- <a class="nav-link" href="/User/@currentUser!.UserName">@currentUser!.UserName</a>
- @if (currentUser!.IsAdmin)
- {
- <a class="nav-link" href="/Admin/Users">@L["nav_admin"]</a>
- <a class="nav-link" href="/Admin/BlockedEmails">@L["nav_admin_blocked_emails"]</a>
- }
- <form method="post" action="/Auth/Logout" style="display:inline">
- @Html.AntiForgeryToken()
- <button type="submit" class="btn btn-ghost nav-link">@L["nav_logout"]</button>
- </form>
- }
- else
- {
- <a class="btn btn-ghost nav-link" href="/Auth/Login">@L["nav_login"]</a>
- <a class="btn btn-primary nav-link" href="/Auth/Register">@L["nav_register"]</a>
- }
- <select class="lang-select" onchange="window.location='/set-language?lang='+this.value+'&returnUrl='+encodeURIComponent(window.location.pathname)" aria-label="Language">
- @foreach (var (code, name) in L.AvailableLanguages())
- {
- if (code == L.CurrentLanguage)
- {
- <option value="@code" selected>@name</option>
- }
- else
- {
- <option value="@code">@name</option>
- }
- }
- </select>
- </div>
- </div>
-</nav>
-<main class="main-content">
- @RenderBody()
-</main>
-<footer class="site-footer">
- <div class="container">
- <span>GitServer &mdash; @L["footer_tagline"]</span>
- </div>
-</footer>
-<script src="~/js/app.js" asp-append-version="true"></script>
-@await RenderSectionAsync("Scripts", required: false)
+ <nav class="navbar">
+ <div class="navbar-inner">
+ <a class="navbar-brand" href="/">
+ <svg class="brand-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
+ <circle cx="12" cy="12" r="3" />
+ <circle cx="12" cy="5" r="2" />
+ <circle cx="12" cy="19" r="2" />
+ <circle cx="5" cy="12" r="2" />
+ <circle cx="19" cy="12" r="2" />
+ <line x1="12" y1="7" x2="12" y2="10" />
+ <line x1="12" y1="14" x2="12" y2="17" />
+ <line x1="7" y1="12" x2="10" y2="12" />
+ <line x1="14" y1="12" x2="17" y2="12" />
+ </svg>
+ GitServer
+ </a>
+ <button class="navbar-toggle" id="navToggle" aria-label="Menu">
+ <span></span><span></span><span></span>
+ </button>
+ <div class="navbar-menu" id="navMenu">
+ @if (SignInManager.IsSignedIn(User))
+ {
+ var currentUser = await UserManager.GetUserAsync(User);
+ <a class="nav-link" href="/User/@currentUser!.UserName">@currentUser!.UserName</a>
+ <a class="nav-link" href="/Repo/New">@L["nav_new"]</a>
+ <a class="nav-link" href="/explore">@L["nav_explore"]</a>
+ @if (currentUser!.IsAdmin)
+ {
+ <a class="nav-link" href="/Admin/Users">@L["nav_admin"]</a>
+ <a class="nav-link" href="/Admin/BlockedEmails">@L["nav_admin_blocked_emails"]</a>
+ }
+ <form method="post" action="/Auth/Logout" style="display:inline">
+ @Html.AntiForgeryToken()
+ <button type="submit" class="btn btn-ghost nav-link">@L["nav_logout"]</button>
+ </form>
+ }
+ else
+ {
+ <a class="nav-link" href="/explore">@L["nav_explore"]</a>
+ <a class="btn btn-ghost nav-link" href="/Auth/Login">@L["nav_login"]</a>
+ <a class="btn btn-primary nav-link" href="/Auth/Register">@L["nav_register"]</a>
+ }
+ <select class="lang-select" onchange="window.location='/set-language?lang='+this.value+'&returnUrl='+encodeURIComponent(window.location.pathname)" aria-label="Language">
+ @foreach (var (code, name) in L.AvailableLanguages())
+ {
+ if (code == L.CurrentLanguage)
+ {
+ <option value="@code" selected>@name</option>
+ }
+ else
+ {
+ <option value="@code">@name</option>
+ }
+ }
+ </select>
+ </div>
+ </div>
+ </nav>
+ <main class="main-content">
+ @RenderBody()
+ </main>
+ <footer class="site-footer">
+ <div class="container">
+ <span>GitServer &mdash; @L["footer_tagline"]</span>
+ </div>
+ </footer>
+ <script src="~/js/app.js" asp-append-version="true"></script>
+ @await RenderSectionAsync("Scripts", required: false)
</body>
</html>