From 548bab93e55f6e514557571d3c9da9b1c1d59c35 Mon Sep 17 00:00:00 2001
From: Server-Bibliothek <server-bibliothek@lokal>
Date: Do, 23 Jul 2026 15:07:49 +0200
Subject: [PATCH] Zugriffsbeschraenkung: voller Zugriff nur lokal am Server, Netzwerk nur Software-Anforderung + Zugriffsprotokoll

---
 templates/zugriffslog.html |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/templates/zugriffslog.html b/templates/zugriffslog.html
new file mode 100644
index 0000000..11edb5e
--- /dev/null
+++ b/templates/zugriffslog.html
@@ -0,0 +1,56 @@
+{% extends "base.html" %}
+{% block title %}Zugriffsprotokoll – Server-Bibliothek{% endblock %}
+{% block content %}
+
+<div class="page-head">
+  <div>
+    <p class="eyebrow">Sicherheit</p>
+    <h1>Zugriffsprotokoll</h1>
+  </div>
+</div>
+
+<div class="hint" style="margin-bottom:16px;">
+  Zeigt jeden Zugriff auf die Software-Anforderung von außerhalb des Servers.
+  Ein echter Windows-Benutzername lässt sich ohne Domänen-Integration nicht
+  zuverlässig ermitteln – hier stehen IP-Adresse, per Reverse-DNS ermittelter
+  Rechnername (falls auflösbar) und der selbst angegebene Name.
+</div>
+
+{% if eintraege %}
+<div class="panel" style="padding:0; overflow-x:auto;">
+  <table class="data-table" style="margin:0;">
+    <thead>
+      <tr>
+        <th style="padding-left:22px;">Zeitpunkt</th>
+        <th>Herkunft</th>
+        <th>IP-Adresse</th>
+        <th>Rechnername</th>
+        <th>Angegebener Name</th>
+        <th style="padding-right:22px;">Aktion</th>
+      </tr>
+    </thead>
+    <tbody>
+      {% for e in eintraege %}
+      <tr>
+        <td style="padding-left:22px;">{{ e.zeitpunkt.replace("T", " ") }}</td>
+        <td>
+          {% if e.lokal %}
+            <span class="badge status-ok">Lokal (Server)</span>
+          {% else %}
+            <span class="badge status-warnung">Netzwerk</span>
+          {% endif %}
+        </td>
+        <td>{{ e.ip_adresse or "–" }}</td>
+        <td>{{ e.rechnername or "–" }}</td>
+        <td>{{ e.angegebener_name or "–" }}</td>
+        <td style="padding-right:22px;">{{ e.aktion }}</td>
+      </tr>
+      {% endfor %}
+    </tbody>
+  </table>
+</div>
+{% else %}
+<div class="empty-state">Noch keine Zugriffe protokolliert.</div>
+{% endif %}
+
+{% endblock %}

--
Gitblit v1.9.3