無効化されたユーザーが、うまく無効化されないことがあります

この問題を再現する方法が見つかりませんでしたが、過去1か月間に、ユーザーが非アクティブ化された(スタッフのアクションログで確認された)にもかかわらず、実際には非アクティブ化されていなかった(ユーザーはログインできた)という2つの事例に気づきました。

たとえば、これは29日前に「非アクティブ化」されましたが、今日私にプライベートメッセージを送ることができました(非アクティブ化後の唯一の他のスタッフアクションは「メールを確認する」です)。

これはもう1つの例です(別のスタッフメンバーが、以前の再アクティブ化なしに、4時間後に同じユーザーを再び「非アクティブ化」することができました)。

私は2.9.0.beta9を使用しています。

この問題はまだ続いています(月に数回発生します)。他に気づいた人はいますか?

これはコントローラーのコードです

StaffActionLogger は正しく動作していますが、User.deactivate メソッドのどこかで問題が発生しているのではないかと疑問に思っています。

エラーに共通しているのは、API リクエストから発生していることです。通常、これを使用しています。

PUT https://<MY_SITE>/admin/users/<USER_ID>/deactivate

Api-Username:<ADMIN_USER>
Api-Key:<KEY>

data: {"context":"/admin/users/<USER_ID>/<USER_NAME>"}

常に「success: OK」と表示されます。

他に確認できるログや試せることはありますか?

2.9.0.beta11 を使用しています。

これはまだ時々発生しています。例えば、このユーザーは8月23日に「非アクティブ」になりましたが、先ほど確認したところまだアクティブだったので、実際に非アクティブにしました。

ユーザーが(再アクティベートせずに)二重に非アクティブ化されることはありますか?

この状況を確認するためのクエリを実行するデイリータスクがあります。昨日は何も返しませんでしたが、今日はこのユーザーのみが返ってきたので、ユーザーは8月23日に正しく非アクティブ化されたものの、何らかの理由で昨日(どこにも記録されずに)アクティブ化されたようです。

ユーザーを(APIまたはUI経由で)アクティブ化しても、痕跡を残さないことは可能ですか?これはデータベースを直接変更することによってのみ発生する可能性があると推測しますが、私は(唯一の管理者なので)それをしたことは確かではありません。

これは起こり得ます。非アクティブ化されたユーザーがアカウントを再アクティブ化するために必要なのは、サイトにログインしようとして、送信されたアクティベーションメールのリンクをクリックすることだけです。

非アクティブ化されたユーザーがログインしようとすると、このモーダルが表示されます。

Discourse は「アカウントの確認」メールを送信します。

メールのリンクをクリックすると、ユーザーは Discourse にログインできます。

これは私が覚えている限りずっとこの動作です。バグだとは思いませんが、間違っている可能性もあります。アカウントを既に持っているユーザーに「アカウントの確認」メールを送信するのは、少しおかしいように思えます。

編集:お探しの動作を得るには、ユーザーを非アクティブ化するのではなく、「一時停止」するのがおそらく良いでしょう。

「いいね!」 4

謎が解けました!サイモンさん、ありがとうございます。このスレッドは終了して構いません。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.