/
wonkxe
/
Contact_and_task
Обзор
Документация
Войти
/
wonkxe
/
Contact_and_task
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/Controllers/auth_controller.py
53 строки
2 KB
wonkxe
1
25 май 2026, 13:57
25 май 2026, 13:57
8620ad8
Код
Авторство
О чём код?
""" Контроллер базовой авторизации. """ from src.Models.user import User from src.Connection.connect import connect_db, close_db def register_user(login: str, password: str, confirm_password: str) -> tuple: connect_db() try: if password != confirm_password: return (False, "Пароли не совпадают", None) if User.select().where(User.login == login).exists(): return (False, "Пользователь с таким логином уже существует", None) user = User.create(login=login) user.set_password(password) user.save() return (True, "Пользователь успешно зарегистрирован", user.id) except Exception as e: return (False, f"Ошибка регистрации: {str(e)}", None) finally: close_db() def login_user(login: str, password: str) -> tuple: connect_db() try: user = User.get_or_none(User.login == login) if user is None: return (False, "Пользователь не найден", None) if user.check_password(password): return (True, "Вход выполнен успешно", user.id) else: return (False, "Неверный пароль", None) except Exception as e: return (False, f"Ошибка входа: {str(e)}", None) finally: close_db() def change_password(user_id: int, old_password: str, new_password: str) -> tuple: connect_db() try: user = User.get_by_id(user_id) if not user.check_password(old_password): return (False, "Неверный старый пароль") user.set_password(new_password) user.save() return (True, "Пароль успешно изменен") except User.DoesNotExist: return (False, "Пользователь не найден") except Exception as e: return (False, f"Ошибка смены пароля: {str(e)}") finally: close_db()