Большинство заданий отображаются по адресу forum.example.com/sidekiq/scheduler. Например, если вы изменили запрос для значка, можно подождать сутки, пока выполнится задание BadgeGrant, или ускорить процесс, нажав кнопку Trigger вручную. Однако я не знаю, какое из этих заданий обновляет флейры.
Мы ещё не обновились до последнего коммита, так как в нём нет изменений, исправляющих эту ошибку.
В нашем случае при обновлении групп через Discourse Connect SSO флаги пользователей остаются без изменений. Мы видим, что пользователя больше нет в группе, но флаг остаётся.
Надеемся, это поможет в выявлении и исправлении ошибки.
Это исправление не будет применено ретроспективно. Вам нужно вручную обновить флейры для старых пользователей. Не могли бы вы сообщить, сколько пользователей затронула эта проблема?
Вау. Ну, я не знаю точных оценок. Исходя из наших потоков данных, ежедневно десятки и даже сотни пользователей могут покидать или присоединяться к определённым группам через SSO.
Могу ли я подсчитать пользователей с устаревшими (не связанными с группами) флэрами?
И как вообще редактировать флейры других пользователей? Я не смог найти такую опцию в панели администратора. Не то чтобы я собирался обновлять столько пользователей по одному, чтобы устранить последствия этой ошибки.
Кстати, удаление флейра из настроек группы и загрузка другого изображения флейра не помогает. Пользователи, не входящие в эту группу, всё ещё сохраняют флейр группы
Просто проверяю, знает ли кто-нибудь, что делать с этой проблемой.
Извините, что так часто поднимаю эту тему, но этот баг действительно сильно мешает нашему сообществу @vinothkannans, есть ли у вас какие-либо предложения, как нам действовать в связи с его последствиями?
Спасибо за ответ.
Правильно ли я понимаю, что из-за последствий этой ошибки нам следует выполнять подобные запросы ежедневно или с другой периодичностью? Дело в том, что наша группа пользователей обновляется ежедневно, а также каждый раз, когда меняется статус подписки пользователя на основном сайте. Всё это осуществляется через SSO.
Спасибо, я терпеливо подожду результатов вашего расследования, прежде чем обращаться к запросам Rails.
Пожалуйста, дайте знать, если я могу чем-то помочь вам в этом вопросе.
@kinetiksoft следующий код на Ruby должен исправить проблему для всех участников в каждой группе. Он удалит флейр группы у пользователей, если они больше не принадлежат к этой группе флейра.
Обратите внимание, что запускать этот скрипт регулярно не нужно. Это разовое исправление для старых затронутых пользователей. В качестве меры предосторожности сделайте резервную копию перед запуском.
User.joins("LEFT OUTER JOIN group_users ON group_users.user_id = users.id AND group_users.group_id = users.flair_group_id").where(group_users: { id: nil }).where.not(flair_group_id: nil).update_all(flair_group_id: nil)
Спасибо! Я сообщу вам, как только мы выполним запрос, и предоставлю обновления в ближайшие дни, чтобы убедиться, что после этого не будет несоответствий в связях между флерами и группами.
Отлично, конечно, посмотрю предстоящие коммиты в разделе обновления.
Стоит ли нам подождать с SQL-запросом из вышеупомянутого сообщения или можем приступить к нему, не дожидаясь слияния коммита в нашем экземпляре Discourse?