こんにちは、
Discourse の管理・開発は初心者で、Ruby はまだ話せませんが(学ぶ意欲は満ちています)、最初のタスクとして Discourse のインストールを設定し、公式の Docker イメージを使って Digital Ocean で成功させました。ここまで順調です。このように簡単にしてくださった方々に感謝します!
次のタスクは私にとってより挑戦的です。ある非営利団体のために Discourse を設定するボランティアを引き受けたのですが、ユーザー登録と参加をその団体のメンバーに限定したいと考えています。そのため、新規ユーザー作成のプロセスを何らかの方法で変更するか、フックするか、あるいは置き換えて、提出されたメールアドレスが既存組織の現在のメンバーと一致するか、メンバーの有効期限が未来にあるかをプログラムで確認する必要があります。
この団体は NeonCRM を使用しており、彼らが提供する API を使えばこの検証は比較的容易です。Discourse は、手動でできることはすべて API でも実行できる仕組みを提供していると理解しています。つまり、理論的にはやりたいことは可能だと言えますよね?問題は、最適なアプローチが何かということです。
例えば、Discourse でイベントリスナー(またはプラグイン?)を作成して、新規ユーザーのサインアップを検知し、この検証ロジックを実行し、登録を中断して「申し訳ありませんが、XYZ 協会のメンバーである必要があります」といった分かりやすいメッセージを表示できるのであれば、それは素晴らしいことです。
あるいは、私がよく知っている PHP で独自のユーザー登録ページを作成し、両方の API を使う方法も考えられます。その場合、Discourse のインストールを何らかの方法で改変して、サインアップページが私のカスタム版にリダイレクトするようにする必要があります。
全体としての戦略がどうあるべきか、そしてどこから学び始めるべきかについて、いくつかの提案をいただければ幸いです。
よろしくお願いいたします!