Craft CMS でユーザー用のフィールドをユーザーグループ毎に制御する
Craft CMS のユーザー情報には自由にフィールドを追加する事ができる。
ユーザーをまとめてユーザーグループで管理できるが、ユーザーグループ単位でのフィールドの制御というのはできない。
そのため、フィールド毎か、フィールドをタブにまとめてタブ毎かで、ユーザーグループ毎に編集可否を制御することで、ユーザーグループ単位でのフィールドとして利用することができる。
ユーザーグループ毎に利用するフィールドを制御する
ユーザーグループとして groupA, groupB があると想定して、それぞれのフィールドを設置するタブを設定し、その中にフィールドを定義する。
groupA 用のタブの設定としてはこのような感じで、ユーザーグループが groupA の場合に表示(編集)するように設定する。
groupB の場合も同様に設定する。
これでユーザーが groupA に所属する場合は groupA のタブだけが表示され、
groupB に所属する場合は groupB のタブだけが表示される。
フィールドが必須かどうかも表示に会わせて制御される
groupB 用のフィールドは必須入力に設定したとする。
その場合、 groupB に所属するユーザーの場合、該当のフィールドが空である場合はエラーとなり保存できない。
groupA に所属しているユーザーの場合は、 groupB 用のタブ(フィールド)は関係ないため、先ほどエラーになったフィールドに値があるかどうかは判定されない。
これにより、擬似的にではあるがユーザーグループ毎に利用するフィールドの制御ができ、フィールドを必須入力にも、任意入力にも設定することができる。
フィールド毎に編集するユーザーグループを制御する
今回はタブでやったが、グループ毎に異なる部分が少ない場合は、フィールド単位で表示するユーザーグループの設定をする事もできる。
これによりユーザーが所属しているグループに応じてフィールドの表示が制御される。
タブで制御した場合と同様に、フィールドの必須入力の判定もフィールドの表示にあわせて制御される。
些細なところではあるが、これが出来る事で使い方の幅が広がりそう。
Discussion