グループからユーザーを削除した場合、そのグループのフラアがユーザーのアバターから即座に削除されることを期待すべきでしょうか?
直前にあるユーザーをグループから削除しました。
彼女にはプライマリグループが選択されていません。
![]()
彼女の設定では、フラアが選択されていません。
ブラウザをリフレッシュし、ログアウトして再度ログインしました。
フラアが削除されるまで、彼女はログアウトして再度ログインする必要がありますか?何か見落としている手順があるでしょうか?
グループからユーザーを削除した場合、そのグループのフラアがユーザーのアバターから即座に削除されることを期待すべきでしょうか?
直前にあるユーザーをグループから削除しました。
彼女にはプライマリグループが選択されていません。
![]()
彼女の設定では、フラアが選択されていません。
ブラウザをリフレッシュし、ログアウトして再度ログインしました。
フラアが削除されるまで、彼女はログアウトして再度ログインする必要がありますか?何か見落としている手順があるでしょうか?
ほとんどのジョブは forum.example.com/sidekiq/scheduler で表示されます。例えば、バッジクエリを変更した場合、BadgeGrant ジョブが実行されるまで1日待つこともできますし、Trigger ボタンを手動で押すことで実行を早めることもできます。ただし、どのジョブがフラアを更新しているのかはわかりません。
はい、ただし匿名ユーザーという小さな例外があります。その場合、一部のページで 1 分間古いフレアが表示されることがあります。
調査の上、修正いたします。
ユーザーのフラアは、プライマリグループがフラアが関連付けられた新しいプライマリグループに変更された場合でも維持されます。
これはここで修正されました
単一グループページで、一括操作「すべてをプライマリにする」を使用してプライマリグループを変更しましたか?
いいえ、ユーザーの管理ページで、単一のユーザーのプライマリグループを変更しました。
2.8.0.beta4(Commits · discourse/discourse · GitHub
このバグを修正する変更が含まれていないため、最新のコミットにはまだ更新していません。
私たちのケースでは、Discourse Connect SSO を介してグループを更新しても、ユーザーのフラアは変更されません。ユーザーがグループに存在しなくなっていることは確認できますが、フラアは残ったままです。
バグの特定と修正にお役に立てれば幸いです。
この修正は遡って適用されません。既存のユーザーのフラアを手動で更新する必要があります。影響を受けるユーザー数はどのくらいでしょうか?
わあ。見積もりはわかりません。当社のデータフローに基づくと、SSO経由で特定のグループに参加または離脱するユーザーが毎日数十人から数百人いる可能性があります。
いずれにせよ、古い(グループとリンクされていない)フラアを持つユーザーをカウントすることはできますか?
他のユーザーのフラアを編集する方法はありますか?管理パネルでそのようなオプションが見つかりませんでした。このバグの名残をユーザー一人ひとりに手動で更新して削除するつもりはありませんが。
ちなみに、グループ設定からフラアを削除して別のフラア画像をアップロードしても解決しません。このグループに所属していないユーザーは、依然としてグループのフラアが表示されたままです ![]()
この問題の対処法をご存知の方がいらっしゃれば教えてください。
何度もスレッドを掘り起こして申し訳ありませんが、このバグが私たちのコミュニティに大きな混乱をもたらしています ![]()
@vinothkannans さん、この影響への対応についてご提案はありますか?
User.where(flair_group_id: REPLACE_WITH_GROUP_ID).where.not(primary_group_id: REPLACE_WITH_GROUP_ID).update_all(flair_group_id: nil)
上記のコマンドで問題が解決します。rails console で実行してください。実行する前に必ずバックアップを取得してください。
ご返信ありがとうございます。
このバグの影響により、このようなクエリを毎日やその他の頻度で実行すべきだと理解してよろしいでしょうか。
当社のユーザーグループは毎日更新され、さらにメインウェブサイト上でユーザーのサブスクリプションステータスが変更されるたびに更新されます。これらすべては SSO を通じて行われています。
いいえ、これを定期的に実行する必要はありません。現在、上記のコミットで問題が修正されています。このコマンドは、以前影響を受けたユーザーのフラアを修正します。
明日、代替案を検討します。
調査結果を待ってから Rails のクエリを検討します。
この件についてお手伝いできることがあれば、お知らせください。
@kinetiksoft 以下の Rails コードは、すべてのグループのすべてのメンバーの問題を解決するはずです。ユーザーがそのフラアグループに所属しなくなった場合、グループフラアを削除します。
なお、このスクリプトを定期的に実行する必要はありません。これは、影響を受けた古いユーザー向けの一度限りの修正です。実行する前に念のためバックアップを取得してください。
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)
@vinothkannans さん、こんにちは!
ありがとうございます!クエリを実行したらお知らせします。その後、数日以内にグループとフラアの関係に不整合がないか確認するための更新情報をお伝えします。
https://github.com/discourse/discourse/pull/14367
また、上記のコミットに別の修正を追加しました。マージされたら、必ずサイトをアップグレードしてください。
素晴らしい、承知しました。アップグレードセクションの今後のコミットを確認します。
上記のSQLクエリは、コミットがDiscourseインスタンスにマージされるのを待ってから実行すべきでしょうか、それとも待たずに進めてもよいでしょうか?
アップグレード後にコマンドを実行できます。