Authinator/Pages/Shared/_Layout.cshtml
2023-06-01 06:14:24 +02:00

104 lines
4 KiB
Plaintext

@using Authinator.Backend.Utils
@using Microsoft.AspNetCore.Mvc.TagHelpers
@using System.Web
@using Authinator.Backend.Database
@{
var db = new DatabaseContext();
}
<!DOCTYPE html>
<html lang="en" data-bs-theme="dark">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
@await RenderSectionAsync("Meta", false)
<title>@ViewData["Title"] - @ApplicationInformation.Project</title>
<link rel="stylesheet" href="~/lib/bootstrap/bootstrap.min.css"/>
<link rel="stylesheet" href="~/lib/bootstrap/bootstrap-icons.min.css">
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true"/>
@await RenderSectionAsync("Stylesheets", false)
</head>
<body class="d-flex flex-column min-vh-100">
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm border-bottom box-shadow mb-3">
@* ReSharper disable once HeuristicUnreachableCode *@
<div class="@(ApplicationInformation.WideContainers ? "container-fluid" : "container")">
<a class="navbar-brand align-middle" asp-area="" asp-page="/Index">
<img src="/favicon.svg" alt="Logo">
</a>
<a class="navbar-brand align-middle" asp-area="" asp-page="/Index">@ApplicationInformation.Project</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link" asp-area="" asp-page="/Index">Home</a>
</li>
@if (Context.IsAuthenticated(db) && Context.GetRemoteUser(db) != null) {
<li class="nav-item">
<a class="nav-link" asp-area="" asp-page="/User">User</a>
</li>
}
@if (Context.IsAdmin(db)) {
<li class="nav-item">
<a class="nav-link" asp-area="" asp-page="/Admin">Admin</a>
</li>
}
</ul>
<ul class="navbar-nav">
<li class="nav-item">
@if (!Context.IsAuthenticated(db)) {
<a class="nav-link" href="/Login?rd=@HttpUtility.UrlEncode(Context.Request.Path.ToString())">
<span class="fw-semibold">Log in</span>
</a>
}
else if (AuthUtils.OverrideAuth) {
<span>
<b>&#x26A0; Auth system overriden &#x26A0;</b>
</span>
}
else {
<span>Authenticated as <b>@Context.GetRemoteUsername(db)</b></span>
}
</li>
</ul>
</div>
</div>
</nav>
</header>
@* ReSharper disable once HeuristicUnreachableCode *@
<div class="@(ApplicationInformation.WideContainers ? "container-custom" : "container") ">
<main role="main" class="pb-3">
@if (AuthUtils.OverrideAuth) {
<div class="alert alert-warning" role="alert">
You are connected as the fallback user '@Context.GetRemoteUsername(db)' because this program was started with the '@AuthUtils.OverrideAuthCli' command line argument. If this is a production deployment, please make sure your configuration is correct.
</div>
}
@RenderBody()
</main>
</div>
<footer class="footer bg-body-tertiary mt-auto py-3">
<div class="container text-muted text-center">
@if (ApplicationInformation.HasVersion) {
<div>
Served by @Environment.MachineName running <a class="footerlink" href="@ApplicationInformation.Repository/commit/@ApplicationInformation.LinkVersion" target="_blank">@ApplicationInformation.Project @ApplicationInformation.Version</a> on .NET @Environment.Version
</div>
}
else {
<div>
Served by @Environment.MachineName running <a href="@ApplicationInformation.Repository">@ApplicationInformation.Project</a> (git revision unknown) on .NET @Environment.Version
</div>
}
</div>
</footer>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
@await RenderSectionAsync("Scripts", false)
</body>
</html>