2013-03-11 97 views
1

我使用LDAP來認證我的用戶(回退到FOS用戶包)。一切正常,我可以登錄。fr3d LdapBundle - 阻止登錄

但是,這已經造成了一個「新」問題。我希望控制誰可以使用FOS登錄到應用程序,但是使用LDAP控制他們的密碼。

我嘗試這樣使用角色:

- { path: ^/, role: ROLE_PGM_USER } 

,但不是因爲用戶在這一點上已經記錄在正確的地方。

有沒有辦法配置fr3d也檢查fos「enabled」字段,然後顯示自定義消息,如果他們不被允許登錄?

回答

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」是從在登錄防止