Перенаправление после входа в систему на основе роли пользователя - PullRequest
0 голосов
/ 15 апреля 2019

Я использую FosUserBundle в Symfony 3.4. Я хочу перенаправить пользователей на основе их ролей. Например, если роль «Клиент», пользователь будет перенаправлен на страницу клиентов. Если пользователь является администратором, он будет перенаправлен на страницу панели администратора. Как я могу сделать это с FosUserBundle?

1 Ответ

0 голосов
/ 15 апреля 2019

Перенаправьте их обоих на контроллер с именем indexAction() и перенаправьте их в контроллер в зависимости от роли. Примерно так:

/**
 * @Route("/secure-area", name="homepage")
 */
public function indexAction()
{

    if($this->getUser()->hasRole('ROLE_ADMIN'))
        return $this->redirect($this->generateUrl('admin_area'));
    elseif($this->getUser()->hasRole('ROLE_USER'))
        return $this->redirect($this->generateUrl('client_area'));
    throw new \Exception(AccessDeniedException::class);
}

EDIT: Вы должны установить default_target_path на путь выше

...