From 242f7cac85c9a58d3a95e9dcc7d12cd7c135b1f5 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Wed, 14 Jul 2021 00:36:30 +0200
Subject: [PATCH] =?UTF-8?q?P=C5=99i=20p=C5=99ihl=C3=A1=C5=A1en=C3=AD=20u?=
 =?UTF-8?q?=C5=BEivatele=20lze=20zobrazit=20flash=20message?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Pozor, nelze to udělat před voláním login_and_redirect(),
protože to zresetuje session.
---
 mo/web/auth.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/mo/web/auth.py b/mo/web/auth.py
index e0d3b46b..379fa2df 100644
--- a/mo/web/auth.py
+++ b/mo/web/auth.py
@@ -33,7 +33,7 @@ class LoginForm(FlaskForm):
     reset = wtforms.SubmitField('Zapomenuté heslo')
 
 
-def login_and_redirect(user: db.User, url: Optional[str] = None):
+def login_and_redirect(user: db.User, flash_msg: Optional[str] = None, url: Optional[str] = None):
     session.clear()
     session['uid'] = user.user_id
     if not url:
@@ -43,6 +43,8 @@ def login_and_redirect(user: db.User, url: Optional[str] = None):
             url = url_for('index')
     else:
         url = request.script_root + url
+    if flash_msg:
+        flash(flash_msg, 'success')
     return redirect(url)
 
 
@@ -110,7 +112,7 @@ def incarnate(id):
         raise werkzeug.exceptions.NotFound()
 
     app.logger.info('Login: Uživatel #%s se převtělil na #%s', g.user.user_id, new_user.user_id)
-    return login_and_redirect(new_user)
+    return login_and_redirect(new_user, flash_msg='Převtělení proběhlo')
 
 
 @app.route('/user/settings')
@@ -179,7 +181,7 @@ def reset():
         app.logger.info('Login: Přihlásil se uživatel <%s> po resetování hesla', user.email)
         db.get_session().commit()
         flash('Nastavení nového hesla a přihlášení do systému proběhlo úspěšně', 'success')
-        return login_and_redirect(user)
+        return login_and_redirect(user, flash_msg='Heslo nastaveno')
 
 
 class RegStatus(Enum):
-- 
GitLab