Commit Graph

28 Commits

Author SHA1 Message Date
1b48675b92 [0.9.7] - 2025-08-18
Some checks failed
Deploy on push / deploy (push) Failing after 2m22s
### 🔄 Изменения
- **SQLAlchemy KeyError** - исправление ошибки `KeyError: Reaction` при инициализации
- **Исправлена ошибка SQLAlchemy**: Устранена проблема `InvalidRequestError: When initializing mapper Mapper[Shout(shout)], expression Reaction failed to locate a name (Reaction)`

### 🧪 Тестирование
- **Исправление тестов** - адаптация к новой структуре моделей
- **RBAC инициализация** - добавление `rbac.initialize_rbac()` в `conftest.py`
- **Создан тест для getSession**: Добавлен комплексный тест `test_getSession_cookies.py` с проверкой всех сценариев
- **Покрытие edge cases**: Тесты проверяют работу с валидными/невалидными токенами, отсутствующими пользователями
- **Мокирование зависимостей**: Использование unittest.mock для изоляции тестируемого кода

### 🔧 Рефакторинг
- **Упрощена архитектура**: Убраны сложные конструкции с отложенными импортами, заменены на чистую архитектуру
- **Перемещение моделей** - `Author` и связанные модели перенесены в `orm/author.py`: Вынесены базовые модели пользователей (`Author`, `AuthorFollower`, `AuthorBookmark`, `AuthorRating`) из `orm.author` в отдельный модуль
- **Устранены циклические импорты**: Разорван цикл между `auth.core` → `orm.community` → `orm.author` через реструктуризацию архитектуры
- **Создан модуль `utils/password.py`**: Класс `Password` вынесен в utils для избежания циклических зависимостей
- **Оптимизированы импорты моделей**: Убран прямой импорт `Shout` из `orm/community.py`, заменен на строковые ссылки

### 🔧 Авторизация с cookies
- **getSession теперь работает с cookies**: Мутация `getSession` теперь может получать токен из httpOnly cookies даже без заголовка Authorization
- **Убрано требование авторизации**: `getSession` больше не требует декоратор `@login_required`, работает автономно
- **Поддержка dual-авторизации**: Токен может быть получен как из заголовка Authorization, так и из cookie `session_token`
- **Автоматическая установка cookies**: Middleware автоматически устанавливает httpOnly cookies при успешном `getSession`
- **Обновлена GraphQL схема**: `SessionInfo` теперь содержит поля `success`, `error` и опциональные `token`, `author`
- **Единообразная обработка токенов**: Все модули теперь используют централизованные функции для работы с токенами
- **Улучшена обработка ошибок**: Добавлена детальная валидация токенов и пользователей в `getSession`
- **Логирование операций**: Добавлены подробные логи для отслеживания процесса авторизации

### 📝 Документация
- **Обновлена схема GraphQL**: `SessionInfo` тип теперь соответствует новому формату ответа
- Обновлена документация RBAC
- Обновлена документация авторизации с cookies
2025-08-18 14:25:25 +03:00
9a2b792f08 refactored
Some checks failed
Deploy on push / deploy (push) Failing after 6s
2025-08-17 17:56:31 +03:00
e7230ba63c tests-passed 2025-07-31 18:55:59 +03:00
3327976586 Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
4070f4fcde linted+fmt
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-29 12:37:39 +03:00
2d382be794 upgrade schema, resolvers, panel added 2025-05-16 09:23:48 +03:00
5d87035885 0.4.10-a
All checks were successful
Deploy on push / deploy (push) Successful in 44s
2025-02-11 12:00:35 +03:00
0347b6f5ff logs-update-shout-5
All checks were successful
Deploy on push / deploy (push) Successful in 59s
2025-02-02 21:57:51 +03:00
31bd421e22 merged-hub
All checks were successful
Deploy on push / deploy (push) Successful in 5s
2024-11-01 15:06:21 +03:00
1892ea666a apply-options-moved
All checks were successful
Deploy on push / deploy (push) Successful in 1m26s
2024-11-01 14:29:58 +03:00
3247a3674f feed-fix
All checks were successful
Deploy on push / deploy (push) Successful in 1m22s
2024-11-01 14:00:19 +03:00
d88f905609 reworked-feed+reader
All checks were successful
Deploy on push / deploy (push) Successful in 1m16s
2024-11-01 13:50:47 +03:00
f7c41532a5 feed-fixes
All checks were successful
Deploy on push / deploy (push) Successful in 1m16s
2024-11-01 11:29:41 +03:00
a105372b15 norandomtopic-onserver-fix
All checks were successful
Deploy on push / deploy (push) Successful in 1m17s
2024-11-01 11:09:16 +03:00
600d52414e txt
Some checks failed
Deploy on push / deploy (push) Failing after 10s
2024-11-01 10:04:32 +03:00
5a9a02d3a4 0.4.6 2024-11-01 09:50:19 +03:00
9942fc2558 load-by pattern, shoutscache removed 2022-11-15 05:36:30 +03:00
503d6daa93 imports-format+id-fix+remigrate 2022-11-10 08:53:19 +03:00
64914028fb reviewed resolvers 2022-09-22 13:31:44 +03:00
4536370c79 stats refactored 2022-09-19 16:50:43 +03:00
3136eecd7e migration, auth, refactoring, formatting 2022-09-17 21:12:14 +03:00
66cd20514e limit-offset-patch 2022-09-14 12:45:31 +03:00
71f3ac5ed6 formatted, linted, fixed 2022-09-04 20:20:38 +03:00
a89a44f660 format and lint orm 2022-09-03 13:50:14 +03:00
83f5f280b2 working-on 2022-08-11 12:09:57 +03:00
8aec6c6e07 refactored 2022-08-11 08:53:14 +03:00
817002b17b typingsfix 2022-07-21 19:11:39 +03:00
6cb5061ce5 wip refactoring: reactions, storages isolated 2022-07-21 14:58:50 +03:00