From f48f78997c281659de1882c6e02024c28d47c8db Mon Sep 17 00:00:00 2001 From: Simon Pirkelmann Date: Sat, 10 Apr 2021 17:25:27 +0200 Subject: [PATCH] added option to view the NFC logfile as super admin --- bin/launch_webadmin | 3 ++- imaginaerraum_door_admin/templates/base.html | 3 +++ .../templates/token_log.html | 23 +++++++++++++++++++ imaginaerraum_door_admin/webapp.py | 14 +++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 imaginaerraum_door_admin/templates/token_log.html diff --git a/bin/launch_webadmin b/bin/launch_webadmin index fc722f0..2a0e61f 100755 --- a/bin/launch_webadmin +++ b/bin/launch_webadmin @@ -10,7 +10,8 @@ parser.add_argument("--nfc_socket", default="/tmp/nfc.sock", help="socket for ha parser.add_argument("--template_folder", default="templates", help="path to Flask templates folder") parser.add_argument("--static_folder", default="static", help="path to Flask static folder") parser.add_argument("--admin_file", help="Path to file for creating super admin users") -parser.add_argument("--log_file", default="/var/log/webinterface.log", help="Path to log file") +parser.add_argument("--log_file", default="/var/log/webinterface.log", help="Path to flask log file") +parser.add_argument("--nfc_log", default="/var/log/nfc.log", help="Path to nfc log file") parser.add_argument("--ldap_url", default="ldaps://ldap.imaginaerraum.de", help="URL for LDAP server for alternative user authorization") parser.add_argument("--mqtt_host", default="10.10.21.2", help="IP address of MQTT broker") diff --git a/imaginaerraum_door_admin/templates/base.html b/imaginaerraum_door_admin/templates/base.html index 680f2fa..6df702a 100644 --- a/imaginaerraum_door_admin/templates/base.html +++ b/imaginaerraum_door_admin/templates/base.html @@ -31,6 +31,9 @@ {% endif %} diff --git a/imaginaerraum_door_admin/templates/token_log.html b/imaginaerraum_door_admin/templates/token_log.html new file mode 100644 index 0000000..2c3be2b --- /dev/null +++ b/imaginaerraum_door_admin/templates/token_log.html @@ -0,0 +1,23 @@ +{% extends 'base.html' %} +{% block header %} + {% block title %}

Token Log

{% endblock %} +{% endblock %} + +{% block content %} + + + + + + + +{% for line in log %} + + + + + +{% endfor %} + +
DateTimestampMessage
{{ line[0] }}{{ line[1] }}{{ line[2] }}
+{% endblock %} \ No newline at end of file diff --git a/imaginaerraum_door_admin/webapp.py b/imaginaerraum_door_admin/webapp.py index e6b55a6..3d633dc 100644 --- a/imaginaerraum_door_admin/webapp.py +++ b/imaginaerraum_door_admin/webapp.py @@ -458,6 +458,20 @@ def create_application(config): inactive_tokens = {t: data for t, data in tokens.items() if data['inactive']} return render_template('tokens.html', assigned_tokens=assigned_tokens, inactive_tokens=inactive_tokens) + @app.route('/token-log') + @roles_required('super_admin') + def token_log(): + log = [] + try: + with open(config.nfc_log) as f: + log += f.readlines() + log.reverse() + log = map(lambda l: l.split(' ', 2), log) + return render_template('token_log.html', log=log) + except Exception as e: + flash(f"NFC logfile {Path(config.nfc_log).absolute()} konnte nicht gelesen werden. Exception: {e}") + return redirect('/') + # routes for registering, editing and deleting tokens @app.route('/register-token', methods=['GET', 'POST']) @roles_required('admin')