結局自前で作成
認証グループ(Drupalではロールと呼びます)
複数の認証グループ、例えば、単純に有料・無料で考えても、
- 有料会員グループ
- 無料会員グループ
など、さらにサイト管理者グループなどがあり、会員管理、認証管理には常に複数の認証グループが必要とされます。
Drupalのユーザ(グループ)管理機能は多岐にわたり、柔軟に権限管理できます
しかし、応用範囲が大きいためか、拡張モジュールが多すぎて見つけられないためか、新規ユーザ登録時、どの認証グループ(ロール)に所属させるかをコントロールする拡張モジュールが見つかりませんでした。
Drupalのデフォルト状態(認証ユーザ,スーパーバイザー)なら認証しているか否かで権限設定が済んでしまい、特に不自由はありません。
しかし、上記のように複数の認証ユーザを管理する場合、
ユーザ登録時に どちらのユーザとして登録するかを自動的に振り分ける方法
がありません。
デフォルトのユーザ登録画面で、ユーザにグループを(チェックボックスで)選んでもらう事で代用することはできますが、ユーザに選択させることのリスクが大きい、各々の新規登録ボタンをクリックした画面で、また もう一度 認証グループを選択しなければならないようなユーザビリティでは使い物になりません。
いま制作中のパートナーズナビでも相談する側、受ける側が明確に分かれ、おのおの権限が全く異なってきますので、2種類の[新規ユーザ登録ボタン]クリックで自動的に振り分ける必要があります。
既存の拡張モジュールに Auto Asign roleという
のがあり、これだと、一種類のロール(認証グループ)だけは指定できますが、デメリットとして、複数の認証グループを定義する事はできません。
今回は、
条件を指定して複数の認証グループが定義できる拡張モジュール
を自前で作成することにしました。