2017-02-10 39 views
1

symfony的登錄,我想限制訪問/登錄登錄用戶根據自己的角色限制訪問取決於我使用symfony的首次作用

這是我securityController

class SecurityController extends BaseController 

{

public function renderLogin(array $data) 
{ 
    if ($this->get('security.authorization_checker')->isGranted('ROLE_USER')) { 
     return $this->redirectToRoute('covoiturage_acceuil');} 

    else if ($this->get('security.authorization_checker')->isGranted('ROLE_ADMIN')) { 
     return $this->redirectToRoute('admin_home');} 

    return $this->render("CovoiturageBundle:User:login.html.twig", $data); 
} 

}

當我記錄爲所有用戶的良好b當我以管理員身份登錄時,我重定向到路由(covoiturage_acceuil)

回答

3

這是因爲管理員也有ROLE_USER。您可以更改順序您的病情來解決這一問題:

public function renderLogin(array $data) 
{ 
    if ($this->get('security.authorization_checker')->isGranted('ROLE_ADMIN')) { 
     return $this->redirectToRoute('admin_home');} //verify first that it's not an admin 

    else if ($this->get('security.authorization_checker')->isGranted('ROLE_USER')) { 
     return $this->redirectToRoute('covoiturage_acceuil');} 

    return $this->render("CovoiturageBundle:User:login.html.twig", $data); 
} 

此外,在法國, 'ACCUEIL' 而不是 'acceuil';)

+0

MERCI! et「accueil」c'étaisune faute de frappe pas plus;) –