2013-03-11 3 views
1

Я использую LDAP для аутентификации пользователей (с возвратом в FOS User Bundle). Все работает нормально, я могу войти.fr3d LdapBundle - предотвращение входа в систему

Это, однако, создало «новую» проблему. Я хочу контролировать, кто может войти в приложение с помощью FOS, но контролировать свой пароль с помощью LDAP.

Я попытался это с помощью РОЛИ:

- { path: ^/, role: ROLE_PGM_USER } 

, но это не место, как пользователь уже зарегистрирован в этой точке.

Есть ли способ настроить fr3d, чтобы также проверить поле «включено» fos, а затем отобразить пользовательское сообщение, если им не разрешено входить в систему?

ответ

1

Найдено.

Используйте здесь инструкции, чтобы переопределить LdapManager (https://github.com/Maks3w/FR3DLdapBundle/blob/master/Resources/doc/cookbook/override_ldap-manager.md).

Затем измените функцию связывания следующим образом:

/** 
* {@inheritDoc} 
*/ 
public function bind(LdapUserInterface $user, $password) 
{ 
    if (!$user->hasRole('ROLE_PGM_USER')) { 
     return false; 
    } 
    return $this->connection->bind($user->getDn(), $password); 
} 

Таким образом, пользователи без «ROLE_PGM_USER» предотвращается вход в

.
Смежные вопросы