Кавычки в названии события очищают список участников

Если я добавлю кавычки в название события на Discourse Calendar (and Event), например Название события: RSVP «Going» для присоединения

При сохранении возникает ошибка 500 на PUT /posts/123 (вероятно, из-за некорректного markdown), но самое плохое то, что все участники, похоже, были удалены из события.

Примечание: это использовалось с Discourse Livestream, но я предполагаю, что это не связано.

3 лайка

Ой, мы обязательно посмотрим на это на следующей неделе.

Поскольку вы получаете ошибку 500, проверьте, пожалуйста, папку /logs и сообщите, что вы там увидите?

1 лайк

Я думаю, что проблема заключается в том, что неэкранированные кавычки нарушают разметку события, из-за чего событие не обнаруживается и уничтожается удаляется. Затем, когда я убираю кавычки и снова нажимаю «Сохранить», создается новое событие.

Ошибка 500 при сериализации, вероятно, является сопутствующим эффектом.

NoMethodError (undefined method `end_of_day' for nil)
plugins/discourse-calendar/app/models/discourse_post_event/event.rb:93:in `expired?'
plugins/discourse-calendar/app/models/discourse_post_event/event.rb:279:in `can_user_update_attendance'
plugins/discourse-calendar/app/serializers/discourse_post_event/event_serializer.rb:93:in `can_update_attendance'
(eval at /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:467):4:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
activesupport (7.2.2.1) lib/active_support/json/encoding.rb:23:in `encode'
activesupport (7.2.2.1) lib/active_support/json/encoding.rb:23:in `encode'
activesupport (7.2.2.1) lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in `to_json'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapter.rb:25:in `dump'
multi_json (1.15.0) lib/multi_json.rb:139:in `dump'
app/controllers/application_controller.rb:506:in `render_json_dump'
app/controllers/posts_controller.rb:301:in `update'
2 лайка

Спасибо за отчет @dsims, это будет исправлено после слияния этого PR.

Это не «лучшее» исправление, но хотя бы событие не сломается, если пользователь введет " в одно из полей модального окна события.

1 лайк