言い忘れましたが、最新トピックで1つのトピック(更新された利用規約)を表示できるようにしたいと考えています。
私もあまり気に入っていませんが、これが現時点で最善の策です。目標は、すべてのユーザーに更新された利用規約に署名してもらうことで、通常よりも高い重要度を設定します。How to force existing users to accept ToS では、Discourse Policy が役立つのではないかという議論がありましたが、Policy は何も強制しません。新しい利用規約の重要性を考えると、単なる青い吹き出し以上のものが必要です。数年前に、ポリシーを承認した際にメンバーをグループに追加するプラグインを開発しましたが、今回の件でどのように機能させるかは分かりません。
すでにかなり複雑なグループとカテゴリのセットがあるため、各カテゴリの権限を「全員」から「利用規約承認済み」に変更するだけでは済みません。「premium-group」と「tos-acceptors」の両方のメンバーであるユーザーのみを許可するように権限を変更できれば、カテゴリ権限がブール論理をサポートしていれば可能かもしれませんが、そうではありません。
ユーザーに通知する方法については、特に強い意見はありません。Discourse Policy の組み込み強制機能があればそれを使用しますが、今回は青い吹き出し以上のものが必要です。
利用規約承認済みグループのメンバーでない場合に、パーマリンクでリダイレクトすることも検討しました。ユーザーIDまたはユーザー名をクエリパラメータとしてパーマリンクURLに追加できれば、これもまだ選択肢です。DocuSignなどにリダイレクトする場合、Webhookを設定して「利用規約承認済み」グループに追加することで、リダイレクトを停止させることができます。これはより良い計画でしょうか?