From ff70f7848edae61a3c966a0fe320f5d28d39b701 Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Tue, 30 Nov 2021 18:32:54 +0100 Subject: [PATCH] =?UTF-8?q?Spr=C3=A1vc=C5=AFm=20nen=C3=AD=20mo=C5=BEn?= =?UTF-8?q?=C3=A9=20resetovat=20heslo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To mimo jiné znamená, že nelze resetovat heslo systémovému uživateli. --- mo/users.py | 1 + mo/web/acct.py | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/mo/users.py b/mo/users.py index 32c858ce..f5fe5642 100644 --- a/mo/users.py +++ b/mo/users.py @@ -286,6 +286,7 @@ def expire_reg_requests(): def request_reset_password(user: db.User, client: str) -> Optional[db.RegRequest]: logger.info('Login: Požadavek na reset hesla pro <%s>', user.email) + assert not user.is_admin rr = new_reg_request(db.RegReqType.reset_passwd, client) if rr: db.get_session().add(rr) diff --git a/mo/web/acct.py b/mo/web/acct.py index 4cb0451f..214da32d 100644 --- a/mo/web/acct.py +++ b/mo/web/acct.py @@ -61,13 +61,16 @@ def login(): app.logger.error('Login: Neznámý uživatel <%s>', email) flash('Neznámý uživatel', 'danger') elif form.reset.data: - rr = mo.users.request_reset_password(user, request.remote_addr) - if rr: - db.get_session().commit() - mo.email.send_password_reset_email(user, rr.email_token) - flash('Na uvedenou adresu byl odeslán e-mail s odkazem na obnovu hesla.', 'success') + if user.is_admin: + flash('Obnova hesla účtu správce není možná.', 'danger') else: - flash('Příliš časté požadavky na obnovu hesla.', 'danger') + rr = mo.users.request_reset_password(user, request.remote_addr) + if rr: + db.get_session().commit() + mo.email.send_password_reset_email(user, rr.email_token) + flash('Na uvedenou adresu byl odeslán e-mail s odkazem na obnovu hesla.', 'success') + else: + flash('Příliš časté požadavky na obnovu hesla.', 'danger') elif not form.passwd.data or not mo.users.check_password(user, form.passwd.data): app.logger.error('Login: Špatné heslo pro uživatele <%s>', email) flash('Chybné heslo', 'danger') -- GitLab