This commit is contained in:
vladislav 2026-09-01 04:20:20 -04:00
parent 4d400fc12b
commit dd5f79c73d
Signed by: Vladislav
GPG Key ID: D97C9E5E4860EE45
2 changed files with 262 additions and 139 deletions

File diff suppressed because it is too large Load Diff

16
main.py
View File

@ -1350,11 +1350,7 @@ async def restore_api(
]})
if not user:
# Безопасность: всегда возвращать одинаковое время ответа/структуру сообщения, если возможно
# Но для удобства использования мы можем сказать "не найден".
# Чтобы предотвратить перечисление, некоторые приложения всегда возвращают "OK", но отправляют письмо только если найдено.
# Здесь мы придерживаемся вашей оригинальной логики, но помните о риске перечисления.
raise HTTPException(status_code=404, detail="Пользователь с таким email не найден")
return {'ok': True}
# 4. Генерация токена
token = secrets.token_urlsafe(32)
@ -1378,13 +1374,13 @@ async def restore_api(
# 7. Асинхронная отправка email
try:
email_task.notify.delay(
recipient=user['email'],
context={
to_email=user['email'],
data={
'link': reset_link,
'email': user['email']
},
subject='Восстановление пароля',
template_name='restore.html'
template='restore.html'
)
except Exception as e:
# Логирование ошибки
@ -3388,8 +3384,8 @@ async def get_posts(
field = 'user.username'
if field == 'name':
field = 'title'
if op == "like":
return {field: {"$regex": value, "$options": "i"}}
# if op == "like":
# return {field: {"$regex": value, "$options": "i"}}
return {field: value}
mongo_query = mql_to_mongo(mql)
for post in [doc async for doc in posts_collection.find(mongo_query).sort({"_id":-1}).limit(per_page * page + 8)][per_page * page - per_page:per_page * page]: