トラストレベルの問題、tl1がtl0をオーバーライドしない

基本的に、信頼レベルの実験を行っています。信頼レベル 0 では、24 時間に 1 回しか投稿できないように設定しました。Patreon を設定して、パトロンになると自動的に信頼レベル 1 が付与されるようにし、これにより投稿制限がなくなるようにしました。そこでこれを試してみましたが、新しいユーザーを作成して Patreon に登録させ、パトロングループ(信頼レベル 1 を付与)に正しく追加されました。しかし、このユーザーで投稿しようとすると、まだ 24 時間に 1 回しか投稿できません。なぜでしょうか?なぜ信頼レベル 1 が、このユーザーに対して信頼レベル 0 の制限を上書きしないのでしょうか?

Patreon がそれらを信頼レベル 1 に割り当てることはできないと思います。これは Discourse が処理する特別なグループだからです。Patreon 用のグループを作成し、そのグループが TL1 に割り当てるように設定してください。グループページの「メンバーシップ」タブにあります。

試しましたが、まだ動作しません。

少し戻って説明します。Patreon はこのユーザーに「信頼レベル 1」を割り当てたようです。私が投稿した画像では、ユーザーの信頼レベルが「1 - basic user」と表示されており、Patreon からのサインアップ直後に「0 - new user」から変更されたことが確認できます。

しかし、Patreon が何をしたか(あるいはしなかったか)に関わらず、手動でユーザーを tf1 カテゴリに追加しても、投稿制限(24 時間ごと)が解除されず、依然として制限されたままのようです。

また、rate limit new user create topic86400 に設定して、tl0 のユーザーが 24 時間ごとにしか投稿できないようにしています。ここに問題があるのでしょうか?もしかすると、この設定が tl1 のユーザーにも適用されているのでしょうか?

これが問題の原因です。その設定から適用されるレート制限は、信頼レベル 0 のユーザーだけでなく、サイトへの登録から 24 時間が経過していない信頼レベル 1 のユーザーにも適用されます。

つまり、これはすべての信頼レベルにわたる24時間制の制限に関する問題だと言っているのですか?

例えば、Patreonグループを信頼レベル2、3、あるいは4に昇格させた場合、レート制限を回避できるのでしょうか?

いいえ、制限は信頼レベル 0 のユーザーに対して、彼らが信頼レベル 0 の状態である限り適用されます。信頼レベル 1 のユーザーに対しては、サイトへの最初の 24 時間 동안に適用されます。信頼レベル 2 のユーザーには制限は適用されません。パトロングループのメンバーに信頼レベル 2 を付与した場合、彼らはこの制限を回避できます。

主に自分自身への参照として、このために使用されるロジックは以下の通りです。

def new_user?
  (created_at >= 24.hours.ago || trust_level == TrustLevel[0]) &&
    trust_level < TrustLevel[2] &&
    !staff?
end