В настоящее время у меня есть два уровня пользователя в моем приложении.Стандартный пользователь, который использует аутентификацию встроенной базы данных Laravel;и административный пользователь, который использует аутентификацию LDAP через Adldap2 .
config/auth.php
:
...
"guards" => [
"web" => [
"driver" => "session",
"provider" => "users",
],
"admin" => [
"driver" => "session",
"provider" => "admins",
],
"providers" => [
"users" => [
"driver" => "eloquent",
"model" => App\User::class,
],
"admins" => [
"driver" => "ldap",
"model" => App\Admin::class,
],
],
...
Никаких проблем с этой настройкой вообще.
Теперь есть возможность иметь административных пользователей из-за пределов компании.Эти пользователи будут проходить проверку подлинности не LDAP, а из записи базы данных в новой таблице admins
.Я мог бы настроить третьего провайдера, но, очевидно, заходить в приложение и переписывать везде, где проверяются разрешения, было бы неинтересно, поэтому я надеюсь, что есть другой способ.
Предполагая, что у нас были пользователи LDAP, входящие в систему с LDAPдомен, например username@corp.internal
, есть ли способ изменить драйвер с «ldap» на «eleoquent» на основе предоставленного имени пользователя?