Ion Authを拡張して、特定の電子メールアドレスのみを登録できるようにしたい。
私はこれを一緒にハックして何かを機能させることができるとかなり確信していますが、codeigniterとion authの初心者として、必要なことを行うための「適切な方法」があるかどうかを知りたいですか?
たとえば、ion authを「拡張」できます(変更を上書きせずにion authコアファイルを更新できますか?)。
これを含むフックもあることに気づきました(レジスター機能に):
$this->ci->ion_auth_model->trigger_events('pre_account_creation');
これらはどこで解決されますか?登録したいアドレスのリストと一致しない電子メールアドレスからの登録を傍受するためにこれを使用できますか?
もしそうなら、私はそれをどのように行いますか?$email
関数から変数にアクセスする必要がありますregister()
。
それとも、ベースコードをion authから変更し、将来更新しない場合ですか?
あなたが私に与えることができるどんな助けにも感謝します。メールビットについて心配する必要はありません。メールアドレスが必要なメールドメインと一致するかどうかを判断することができます。ライブラリを拡張するための最善の方法に興味があります。
トム
編集:こんにちはベン、あなたの答えに感謝し、私の問題を見て時間を割いてくれてありがとう。残念ながら、これは役に立ちませんでした。
あなたがやろうとしていることは、SQLクエリに「wherein」句を少し追加することだと思いますか?where in
列名がないのでビットが間違っていると思います。
また、この時点では、必要な出力を生成するためにSQLクエリを十分に変更することはできません。たとえば、文字通りの関数にフックを追加する$this->db->where('1=1')
と、次のクエリでこのSQLが出力されます。
SELECT COUNT(*) AS `numrows` FROM (`users`) WHERE `1=1` AND `email` = 'rawr@rawr.com'
このAND email = 'rawr@rawr.com'
ビットは常に行を返しません。あるはずですがOR email = 'rawr@rawr.com'
、Ion Authコアコードを編集しないと、これを変更することはできません。
私は(ここ数時間のいじくり回しから)これを達成するためにionauthコアを編集しなければならないのではないかと疑い始めています。