diff --git a/mo/users.py b/mo/users.py index 0754725cac8bc947e871b91f55e936fa6bdfb9a7..ef89b1ae49b0224fbfc7360b1ac8e782f0438c58 100644 --- a/mo/users.py +++ b/mo/users.py @@ -467,12 +467,3 @@ def request_reset_password(user: db.User, client: Optional[str]) -> Optional[db. details={'action': 'ask-reset'}, ) return rr - - -def reset_user_dsn(user: db.User) -> None: - if user.dsn_id: - logger.info(f'Uživatel #{user.user_id}: Reset DSN') - user.dsn_id = None - conn = db.get_session().connection() - dsn_table = db.EmailDSN.__table__ - conn.execute(dsn_table.delete().where(dsn_table.c.user_id == user.user_id)) diff --git a/mo/util_dsn.py b/mo/util_dsn.py index 64fe8cd7a760abf451e64ad5a44fa09947c9c4f4..165530f055f47fee780bcfe5bc2f9dc5bbcf8e33 100644 --- a/mo/util_dsn.py +++ b/mo/util_dsn.py @@ -7,6 +7,7 @@ from typing import Optional import mo import mo.config as config import mo.db as db +from mo.util import logger dsn_explanation = { @@ -48,3 +49,12 @@ def expire_dsns() -> None: .where(dsn_table.c.dsn_id.not_in(select(user_table.c.dsn_id)))) sess.commit() + + +def reset_user_dsn(user: db.User) -> None: + if user.dsn_id: + logger.info(f'Uživatel #{user.user_id}: Reset DSN') + user.dsn_id = None + conn = db.get_session().connection() + dsn_table = db.EmailDSN.__table__ + conn.execute(dsn_table.delete().where(dsn_table.c.user_id == user.user_id)) diff --git a/mo/web/acct.py b/mo/web/acct.py index deefa8cc564a10e922596e9942bb5df773bfb6d0..a90723018688e1c4e0b4aa3e198997534b970646 100644 --- a/mo/web/acct.py +++ b/mo/web/acct.py @@ -555,14 +555,14 @@ class Reg2: }, ) - mo.users.reset_user_dsn(user) + mo.util_dsn.reset_user_dsn(user) self.spend_request_and_commit() return True def validate_email(self) -> None: user = self.rr.user app.logger.info(f'Reg2: Uživatel #{user.user_id} potvrzuje email <{user.email}>') - mo.users.reset_user_dsn(user) + mo.util_dsn.reset_user_dsn(user) self.spend_request_and_commit() def change_passwd(self, new_passwd: str): @@ -572,7 +572,7 @@ class Reg2: app.logger.info(f'Reg2: Uživatel #{user.user_id} si resetoval heslo') mo.users.set_password(user, new_passwd, reset=True) mo.users.login(user) - mo.users.reset_user_dsn(user) + mo.util_dsn.reset_user_dsn(user) self.spend_request_and_commit() def spend_request_and_commit(self): diff --git a/mo/web/org_users.py b/mo/web/org_users.py index 43f104b0b3c1b082b66767fca301d78c10e9fe18..be60c783a6446dca3effc800f4cd187d2d354be0 100644 --- a/mo/web/org_users.py +++ b/mo/web/org_users.py @@ -21,6 +21,7 @@ from mo.imports import GlobalOrgsImport import mo.rights from mo.rights import Right, Rights import mo.util +import mo.util_dsn import mo.users from mo.web import app import mo.web.fields as mo_fields @@ -525,7 +526,7 @@ def org_user_edit(id: int): if sess.is_modified(user): changes = db.get_object_changes(user) if 'email' in changes: - mo.users.reset_user_dsn(user) + mo.util_dsn.reset_user_dsn(user) app.logger.info(f"Uživatel #{id} změněn: {changes}") mo.util.log( type=db.LogType.user,