以前にも質問されていたらすみません。昨日、似たようなことを見つけましたが、今日の検索では何もヒットしませんでした。
シナリオ:
Discourseサーバーで、生年月日などのフィールドを必須フィールドに設定したいとします。これはサインアップ後に編集する必要のないものです。そのため、解決策はカスタムフィールドの「サインアップ後の編集を許可」のチェックを外し、フィールドを「サインアップ時に必須」に変更することです。これは、通常のメール/ユーザー名サインアップでアカウントを作成するユーザーには機能します。
問題点 1:
OAuth、DiscourseID、WP-Discourseなどを介してアカウントを作成するユーザーは、これらのフィールドをまったく表示しません。これらのユーザーがこれらのフィールドにアクセスできるようにするには、「すべて必須」としてマークする必要があります。これが次の問題につながります…
問題点 2:
「すべて必須」は、当然ながら、フィールドが「サインアップ後の編集を許可」としてマークされていることを要求します。残念ながら、これによりユーザーはいつでもフィールドを変更できるようになります…これは私たちがまったく望んでいないことです。
要望する機能:
「すべて必須」が「サインアップ後の編集を許可」のチェックを必要としないようにするロジックを追加すること。このロジックは、まず「サインアップ後の編集を許可」がどのように設定されているかを確認する前に、フィールドが空または「null」であるかどうかを確認します。これは、空/nullの必須フィールドに対して編集可能チェックボックスを実質的に無視します。これにより、カスタムユーザーフィールドは一度編集可能になりますが、値が保存されると、それ以上編集できなくなります。