From e6c88ee5e5d985d3728e9c0d6f0e0e73a09781cd Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Fri, 24 Jan 2025 23:53:11 +0100
Subject: [PATCH] =?UTF-8?q?DSN:=20U=C5=BEivatel=20si=20m=C5=AF=C5=BEe=20zo?=
 =?UTF-8?q?brazit=20sv=C3=A9=20nedoru=C4=8Denky?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 mo/web/acct.py                 | 15 +++++++++++++++
 mo/web/templates/acct_dsn.html | 26 ++++++++++++++++++++++++++
 2 files changed, 41 insertions(+)
 create mode 100644 mo/web/templates/acct_dsn.html

diff --git a/mo/web/acct.py b/mo/web/acct.py
index 02c82928..01f001cc 100644
--- a/mo/web/acct.py
+++ b/mo/web/acct.py
@@ -674,6 +674,21 @@ def handle_forbidden(e):
     return render_template('forbidden.html'), 403
 
 
+@app.route('/acct/dsn')
+def user_dsn():
+    sess = db.get_session()
+    user = g.user
+    if not user:
+        raise NeedLoginError()
+
+    dsns = (sess.query(db.EmailDSN)
+            .filter_by(user=user)
+            .order_by(db.EmailDSN.arrived_at.desc())
+            .all())
+
+    return render_template('acct_dsn.html', user=user, dsns=dsns)
+
+
 if getattr(config, 'INSECURE_TEST_LOGIN', False):
     @app.route('/test-login/<email>')
     def test_login(email: str):
diff --git a/mo/web/templates/acct_dsn.html b/mo/web/templates/acct_dsn.html
new file mode 100644
index 00000000..ba0d4a38
--- /dev/null
+++ b/mo/web/templates/acct_dsn.html
@@ -0,0 +1,26 @@
+{% extends "base.html" %}
+{% block title %}Nedoručitelné e-maily{% endblock %}
+{% block body %}
+
+{% if dsns %}
+
+<p>
+	Tuto e-mailovou adresu považujeme za nefunkční, protože pošta na ni poslaná
+	se vrátila jako nedoručitelná. Zde jsou zprávy o nedoručitelnosti e-mailů z nedávné doby.
+</p>
+
+{% include "parts/dsn.html" %}
+
+{% else %}
+
+<p><em>Momentálně neevidujeme žádnou nedoručitelnou poštu.</em></p>
+
+{% endif %}
+
+<div class="btn-group">
+	<a class='btn btn-primary' href='{{ url_for('user_validate_email') }}'>Ověřit e-mail</a>
+	<a class='btn btn-primary' href='{{ url_for('user_settings_personal') }}'>Změnit e-mail</a>
+	<a class='btn btn-default' href="{{ url_for('user_settings') }}">Zpět na nastavení účtu</a>
+</div>
+
+{% endblock %}
-- 
GitLab