From e4e6541b8c12425af2dcb6cf3487949a7f0f9334 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Fri, 2 May 2025 18:22:02 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20feat:=20update=20app=20logic=20a?= =?UTF-8?q?nd=20database=20schema=20for=20improved=20performance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/models.cpython-313.pyc | Bin 26753 -> 26990 bytes app.py | 2 ++ database/systades.db | Bin 147456 -> 147456 bytes .../__pycache__/user_manager.cpython-313.pyc | Bin 8263 -> 8296 bytes 4 files changed, 2 insertions(+) diff --git a/__pycache__/models.cpython-313.pyc b/__pycache__/models.cpython-313.pyc index 26667656fe8c727b65be3052fc8475f7de02956e..f8a220e898d561375e6a745d14c84eab6268676a 100644 GIT binary patch delta 3099 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 diff --git a/app.py b/app.py index fcc686a..577dfa7 100644 --- a/app.py +++ b/app.py @@ -288,6 +288,7 @@ def login(): password = request.form.get('password') user = User.query.filter_by(username=username).first() + if user and user.check_password(password): login_user(user) # Aktualisiere letzten Login-Zeitpunkt @@ -296,6 +297,7 @@ def login(): next_page = request.args.get('next') return redirect(next_page or url_for('index')) + flash('Ungültiger Benutzername oder Passwort') return render_template('login.html') diff --git a/database/systades.db b/database/systades.db index 59f8166af1e0a6710ad792617be43323238dff6a..4dc1a1d696ba2fc9d346c02fcb285f9ef60b84e1 100644 GIT binary patch delta 382 zcmbV|Jx>Bb7=$?rlWU-)(BcY0LLu(H`*FKh2?VtGDQ&=Mf`CZbw1CAQRncuZ=OtQ%}L|?P<}ObWw+j_wJyqse%z}4 z%HU$UJjSKpn#FqVdv3K@+ZhJPHn{;IGmxZGyZ?GWz8a54ewMGc)7!iqm~>iE;DRDT zuoeurU^NQ?l}fd+zG?=KskG7(>e8K5V4RQwsWpNF0dY<$Lqe+=k^$=xCN$Be>_-0w zeOa#YdLo|YH+1tn7_^-U9H=ntjw`JtdO|#9sGKD{WtM4V22gYF6dF*3S`~Q8JyOaP ab0Yi!r5PtZE|n7Mc->p_o<#ekp8NpRvT30J delta 55 zcmZo@;B08%oFL7pJWDY=<>MN&ZR znk+@4K&nU#NZev6%FjvNyn;`fkxL)QR|Dc=pUG$W7qj0}(3lv$B5iW9z#3aO4(1t- zj4rlJ2bICpAw4HnAn%ARmm4eVQFa|S2G*m-EI?Jq7+8TK$5@#`Yz{6rG4^Dp$qPkA zHWvt*F)=DnUM^g$sRFWG6+{Sv2z3y_3L-%ME7AfH5+Fi*va^UIqw(fekq%}yWsr#B zWMK(k9W?!Lt+&`xQgc#EQc;ZPkJK( zEhjIQs${gEEGz8@B;%zEf#gMLOGeYl+%h`_Kw(m33?j@xgw^CLGW+dqK}>iM7U_Vv w3P9o(S3yx`UP*jLYED6s1xVBqM96@oIBatBQ%ZAE?TX?zUy?0kVgX430Ezx_fB*mh delta 491 zcmaFiaNL3SGcPX}0}yQdBbc#iBkvb3CI#lnw?x|~cX2cI1&~y zlhZ^T84WkD5b0oMQv`|VPd1bA)j`t_*LsUBB{e6tBo)Po^%DAwCY$d|R5P;QVoglR z&CHt|FD1vQJGo9uS=ka~C=eHm0Eq^MC){Ea$}cDwZwNn7a*^BT0*g2L4*m2u$=r=X1~1+h=~YPEfCiXNZjHoD9X$$ miO)#QDJU`riCTaN8ITl*O>TZlX-=wLQQYRwvV}}6ASnQ|8+dL2