From eba8b21dbb2ad091133d1f553c83c80d088fb32c Mon Sep 17 00:00:00 2001 From: rasmus Date: Fri, 12 Jun 2026 00:57:54 +0300 Subject: [PATCH] Basic doorlog access --- inventory-app/doorboy.py | 21 ++++++++++++++++++--- inventory-app/templates/doorboy_log.html | 18 ++++++++++++++---- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/inventory-app/doorboy.py b/inventory-app/doorboy.py index fd731b7..16253d6 100644 --- a/inventory-app/doorboy.py +++ b/inventory-app/doorboy.py @@ -153,9 +153,24 @@ def view_user_cards_inner(username): }).sort([("last_seen", -1)]) return render_template("doorboy_user.html", **locals()) -#TODO: only returns UID opens, not web or slack +@page_doorboy.route("/m/doorboy/log") +@login_required(groups=["k-space:board", "k-space:kubernetes:admins"]) +def doorlog(): + latest_events = db.doorlog.find({}).sort([("timestamp", -1)]) + return render_template("doorboy_log.html", latest_events=latest_events) + + @page_doorboy.route("/m/doorboy/log/") @login_required(groups=["k-space:board", "k-space:kubernetes:admins"]) -def view_user_events(username): +def doorlog_user(username): + if username is None: + return redirect("/m/doorboy/log") + latest_events = db.doorlog.find({"user": username}).sort([("timestamp", -1)]) - return render_template("doorboy_log.html", latest_events=latest_events) + return render_template("doorboy_log.html", latest_events=latest_events, info="Slack users without linked IDs opening from #members appear in Unlinked users.") + +@page_doorboy.route("/m/doorboy/log/_") +@login_required(groups=["k-space:board", "k-space:kubernetes:admins"]) +def doorlog_unknowns(): + latest_events = db.doorlog.find({"user": {"$in": [None, ""]}}).sort([("timestamp", -1)]) + return render_template("doorboy_log.html", latest_events=latest_events, info="Showing opens not linked to kube users.") diff --git a/inventory-app/templates/doorboy_log.html b/inventory-app/templates/doorboy_log.html index 0529b95..ffb5c04 100644 --- a/inventory-app/templates/doorboy_log.html +++ b/inventory-app/templates/doorboy_log.html @@ -2,8 +2,10 @@ {% block content %} -

This page only shows Card and Webhook (inventory) opens!

-

Does not include Slack opens. Formats need to be unified. Use #door-log Slack channel Ctrl-f instead!

+{% if info -%} +

{{ info | safe }}

+{%- endif %} +

Approved means door actually opened. Unapproved opens are failed attempts.

@@ -11,7 +13,9 @@ - + + + @@ -20,7 +24,13 @@ - + + + {% endfor %}
Approved Timestamp DoorWho (UID hash)WhoMethodMethod details
{% if o.approved %}check_circle{% else %}no{% endif %} {{ o.timestamp | timeago }} {{ o.door }}{{ o.inventory.owner_id }} ({{ o.token.uid_hash[-6:] }}){% if o.user %}{{ o.user }}{% endif %}{{ o.method }}{% if o.userExtra %}{% if o.method == "card" -%} + {{ o.userExtra[-6:] }} + {% else -%} + {{ o.userExtra }} + {%- endif %}{% endif %}