Нажатие на счётчик реакций приводит к циклу 403, если пост скрыт

Бэкенд /discourse-reactions/app/controllers/discourse_reactions/custom_reactions_controller.rb использует guardian.ensure_can_see!(post) для запрета пользователям без прав доступа на загрузку реакций, если пост скрыт.

Однако фронтенд по-прежнему отображает счётчик реакций. В результате, когда пользователи нажимают на счётчик реакций скрытого поста, возникает бесконечная загрузка с ошибкой 403 Forbidden при запросе к /discourse-reactions/posts/xxx/reactions-users-list.json.

Этот коммит добавляет аналогичную проверку на фронтенде: скрывает счётчик реакций, если args.post.hidden && !args.post.can_see_hidden_post, тем самым устраняя данную проблему.

https://private-user-images.githubusercontent.com/77799160/595836870-87c39f7f-5b8b-4555-a877-fe74714e16ca.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODAwMjM0OTEsIm5iZiI6MTc4MDAyMzE5MSwicGF0aCI6Ii83Nzc5OTE2MC81OTU4MzY4NzAtODdjMzlmN2YtNWI4Yi00NTU1LWE4NzctZmU3NDcxNGUxNmNhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA1MjklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNTI5VDAyNTMxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ5NjZhYjYzODhhODk4N2ZkNjZjODgwNjRlY2Y5ZWI5ZDllN2RjMDBjNzhhMDMxNGM2NjJmNGYxMmNmODlkMzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.Yt3iCEvZNcQmOXCn6kwviEAkLMe0efWZXkeohflv2Wg

PR: FIX: reactions shouldn't be visible to users without see_hidden_post permission if a post is hidden by small-lovely-cat · Pull Request #40216 · discourse/discourse · GitHub

4 лайка

Спасибо! Я только что объединил это.

1 лайк