Improve topic sorting: add popular sorting by publications and authors count
This commit is contained in:
35
CHANGELOG.md
35
CHANGELOG.md
@@ -1,15 +1,40 @@
|
||||
# Changelog
|
||||
|
||||
## [Unreleased]
|
||||
## [0.5.0]
|
||||
|
||||
### Добавлено
|
||||
- **НОВОЕ**: Поддержка дополнительных OAuth провайдеров:
|
||||
- поддержка vk, telegram, yandex, x
|
||||
- Обработка провайдеров без email (X, Telegram) - генерация временных email адресов
|
||||
- Полная документация в `docs/oauth-setup.md` с инструкциями настройки
|
||||
- Маршруты: `/oauth/x`, `/oauth/telegram`, `/oauth/vk`, `/oauth/yandex`
|
||||
- Поддержка PKCE для всех провайдеров для дополнительной безопасности
|
||||
- Статистика пользователя (shouts, followers, authors, comments) в ответе метода `getSession`
|
||||
- Интеграция с функцией `get_with_stat` для единого подхода к получению статистики
|
||||
- **НОВОЕ**: Полная система управления паролями и email через мутацию `updateSecurity`:
|
||||
- Смена пароля с валидацией сложности и проверкой текущего пароля
|
||||
- Смена email с двухэтапным подтверждением через токен
|
||||
- Одновременная смена пароля и email в одной транзакции
|
||||
- Дополнительные мутации `confirmEmailChange` и `cancelEmailChange`
|
||||
- **Redis-based токены**: Все токены смены email хранятся в Redis с автоматическим TTL
|
||||
- **Без миграции БД**: Система не требует изменений схемы базы данных
|
||||
- Полная документация в `docs/security.md`
|
||||
- Комплексные тесты в `test_update_security.py`
|
||||
- **НОВОЕ**: OAuth токены перенесены в Redis:
|
||||
- Модуль `auth/oauth_tokens.py` для управления OAuth токенами через Redis
|
||||
- Поддержка access и refresh токенов с автоматическим TTL
|
||||
- Убраны поля `provider_access_token` и `provider_refresh_token` из модели Author
|
||||
- Централизованное управление токенами всех OAuth провайдеров (Google, Facebook, GitHub)
|
||||
- **Внутренняя система истечения Redis**: Использует SET + EXPIRE для точного контроля TTL
|
||||
- Дополнительные методы: `extend_token_ttl()`, `get_token_info()` для гибкого управления
|
||||
- Мониторинг оставшегося времени жизни токенов через TTL команды
|
||||
- Автоматическая очистка истекших токенов
|
||||
- Улучшенная безопасность и производительность
|
||||
|
||||
### Исправлено
|
||||
- **КРИТИЧНО**: Ошибка в функции `unfollow` с некорректным состоянием UI:
|
||||
- **Проблема**: При попытке отписки от несуществующей подписки сервер возвращал ошибку "following was not found" с пустым списком подписок `[]`, что приводило к тому, что клиент не обновлял UI состояние из-за условия `if (result && !result.error)`
|
||||
- **Решение**:
|
||||
- **Решение**:
|
||||
- Функция `unfollow` теперь всегда возвращает актуальный список подписок из кэша/БД, даже если подписка не найдена
|
||||
- Добавлена инвалидация кэша подписок после операций follow/unfollow: `author:follows-{entity_type}s:{follower_id}`
|
||||
- Улучшено логирование для отладки операций подписок
|
||||
@@ -51,6 +76,10 @@
|
||||
- Обновлен `docs/follower.md` с подробным описанием исправлений в follow/unfollow
|
||||
- Добавлены примеры кода и диаграммы потока данных
|
||||
- Документированы все кейсы ошибок и их обработка
|
||||
- **НОВОЕ**: Мутация `getSession` теперь возвращает email пользователя:
|
||||
- Используется `access=True` при сериализации данных автора для владельца аккаунта
|
||||
- Обеспечен доступ к защищенным полям для самого пользователя
|
||||
- Улучшена безопасность возврата персональных данных
|
||||
|
||||
#### [0.4.23] - 2025-05-25
|
||||
|
||||
@@ -493,4 +522,4 @@
|
||||
- `gittask`, `inbox` and `auth` logics removed
|
||||
- `settings` moved to base and now smaller
|
||||
- new outside auth schema
|
||||
- removed `gittask`, `auth`, `inbox`, `migration`
|
||||
- removed `gittask`, `auth`, `inbox`, `migration`
|
||||
|
Reference in New Issue
Block a user