無駄に長いタイトル通りです。
例によってニッチな機能の、functions.phpに書けば事足りそうな代物をなんとなくプラグイン化してみました。
(ついでに多少まじめに管理画面を作って全体を整理したら、結局9割くらいコードを書き直す事になったので自分的にはほぼ新規作成だった気がしなくもありませんが…。)
こんなものを何に使うかと言うと、例えば、とある団体のその参加企業の所有するドメイン(単一、または複数の)のメールアドレス所持者のみユーザー登録を許可したい、等という用途です。
動作としては、ユーザー新規登録の際に使用するメールアドレスに対して判定を行い、許可されているドメイン以外の場合はエラーとして処理します。
一度ユーザー登録を完了させた後、プロフィール画面で許可対象外の別ドメインのメールアドレスへの変更を許すかどうかは任意選択可能です。
また、指定するドメインのリストの処理方法としてホワイトリスト方式とブラックリスト方式の選択が可能です。
※動作について
プロフィール画面での制限を実行する場合、処理の対象になってもアドレスの変更ができないだけでエラー等は表示されません。
この為、実際の運用ではどこかしらに注意書きでも書いておく必要があります。
また、現状では管理者による変更であっても制限をかける場合その対象となります。
作り終わった後に動作を試していて気づいたのですが、管理者があえて対象外のドメインを指定するというシチュエーションが思い浮かばない為、今のところ修正予定はありません。
実際の処理内容としては、メールアドレスが新しいもの(許可の対象外ドメインの)ものに上書きされた直後に、旧アドレスで書き戻すといった処理になっています。
(変更前に妨害するちょうどいいフックが無かったのでこうなっています)
RA – Registration Mail Address Domain Limiter
※ご注意他の配布物にも言えますが、野良プラグインのご使用は自己責任でどうぞ。例によって公式のプラグインディレクトリへの登録は、英語のReadmeを書くのが面倒なので放置中です。
2014 9/19 追記
例外アドレスリストを追加しつつ、ついでに公式ディレクトリに登録しました。
今後はそちらからダウンロードして下さい。※プラグイン名称も微妙に変わっています。