本質的にそれに依存しているコードから認証バックエンド ロジックを分離する最善の方法は何ですか?
ここによくある問題があります: django_auth_ldap は users テーブルを事前設定せず、LDAP に対して認証し、ユーザーが初めてログインするときにテーブルにユーザーを追加します。
ただし、プロジェクトにメンバーを追加するアプリを作成しているとします。ユーザーは、LDAP に存在するが以前にログインしたことのない他のユーザーを追加したい場合があるため、この場合はユーザー名を入力し、LDAP とデータベースにクエリを実行して、そのユーザーが存在するかどうかを確認する必要があります。繰り返しになりますが、アプリを再利用できるように作成する場合は、「ユーザー名による検索」サブルーチンを構成可能にしたいと考えています。
職場では、問題に対して 2 つの異なる解決策がありましたが、どちらも正常に機能しますが、奇妙な解決策です。
- 必要なルックアップを行う get_user_by_username 関数を settings.py に記述できるようにします。
- 作成した auth.User のプロキシ モデルへの「appname.modelname」パスを指定します。これは、get_user_by_username と同じことを行うクラスメソッドを持つことが期待/強制されます。
最初のものは新しい型を導入していないので少しきれいだと思いますが、それでもなお、settings.py にあるのは奇妙です。