認証された専門家のためのフォーラムとして Discourse のインストールを設定しています。各ユーザーは認証され、好きなユーザー名を選ぶことができますが、プロフィールのフルネームが資格情報と一致するようにしたいと考えています。フルネームフィールドの変更に対してモデレーターの承認を必須にする方法はありますか?
こんにちは、
現在、これは不可能です。
ありがとうございます。ユーザープロフィールに、変更を制限できるカスタムフィールドを追加することは可能でしょうか?
編集:結構です。[設定] > [カスタマイズ] > [ユーザーフィールド] で可能であることがわかりました。
ユーザーが名前を変更した際に、スタッフへログ記録や通知を設定することは可能でしょうか?
ユーザーイベントの webhook を設定して、Discourse 外のサービスに通知を送信し、ユーザーがプロフィールページで変更を加えた際に通知を受け取るようにすることができます。Zapier のようなサービスが webhook の処理に役立ちます:https://meta.discourse.org/t/discourse-webhooks-and-zapier/56753。
webhook のアプローチでは、ユーザーの name プロパティが変更されたかどうかを判断するには、webhook のペイロードを外部データベースに保存したユーザーデータと比較する必要があるため、ある程度の作業が必要です。一方、ユーザーのプロフィールが更新されたことだけを把握すればよい場合は、webhook の処理は比較的簡単です。
貴重なご提案をありがとうございます。外部データベースの管理や、そのデータとウェブフックペイロードを比較するツールのプログラミングは、現時点では私のスキルでは不可能です!しかし、同様のことを実現したい方々や、必要なスキルをお持ちの方にとって、このご提案が役立つことを願っています。
@simon、正直に言うと、あなたの提案を新しいことを学ぶための挑戦として受け取り、思わず行動してしまいました。
Integromat に webhook 受信者とデータストアを設定しました。データストアには、webhook で配信された関連するユーザー情報が含まれています(既存のユーザーをインポートする必要はありませんでした。この Discourse はまだ公開されていないためです)。
Webhook のヘッダーは、user_destroyed、user_created、user_updated についてチェックされます。削除されたユーザーと作成されたユーザーは、それぞれデータストアから削除または作成されます。
更新されたユーザーについては、データストアから名前を検索し、レコードを更新します。もし以前の名称と更新後の名称が異なる場合、Integromat は staff のみが見られるトピックに以下のような形式で投稿を追加します。
「Foo Bar(ユーザー名:foobar)がフルネームを Boo Far に変更しました」
ご提案いただき、ありがとうございます!
