👥

Craft CMS でユーザー用のフィールドをユーザーグループ毎に制御する

2024/09/25に公開

Craft CMS のユーザー情報には自由にフィールドを追加する事ができる。

ユーザーをまとめてユーザーグループで管理できるが、ユーザーグループ単位でのフィールドの制御というのはできない。
そのため、フィールド毎か、フィールドをタブにまとめてタブ毎かで、ユーザーグループ毎に編集可否を制御することで、ユーザーグループ単位でのフィールドとして利用することができる。

ユーザーグループ毎に利用するフィールドを制御する

ユーザーグループとして groupA, groupB があると想定して、それぞれのフィールドを設置するタブを設定し、その中にフィールドを定義する。

groupA 用のタブの設定としてはこのような感じで、ユーザーグループが groupA の場合に表示(編集)するように設定する。

groupB の場合も同様に設定する。

これでユーザーが groupA に所属する場合は groupA のタブだけが表示され、

groupB に所属する場合は groupB のタブだけが表示される。

フィールドが必須かどうかも表示に会わせて制御される

groupB 用のフィールドは必須入力に設定したとする。

その場合、 groupB に所属するユーザーの場合、該当のフィールドが空である場合はエラーとなり保存できない。

groupA に所属しているユーザーの場合は、 groupB 用のタブ(フィールド)は関係ないため、先ほどエラーになったフィールドに値があるかどうかは判定されない。

これにより、擬似的にではあるがユーザーグループ毎に利用するフィールドの制御ができ、フィールドを必須入力にも、任意入力にも設定することができる。

フィールド毎に編集するユーザーグループを制御する

今回はタブでやったが、グループ毎に異なる部分が少ない場合は、フィールド単位で表示するユーザーグループの設定をする事もできる。

これによりユーザーが所属しているグループに応じてフィールドの表示が制御される。
タブで制御した場合と同様に、フィールドの必須入力の判定もフィールドの表示にあわせて制御される。


些細なところではあるが、これが出来る事で使い方の幅が広がりそう。

Discussion