2013-09-12 3 views
1

Я новичок в Symfony2. Я пытаюсь использовать FOSUserBundle для аутентификации пользователей.FOSUserBundle для администратора и переднего конца

Возможно ли использовать один FOSUserBundle для администратора, а также переднюю часть? Если да, то какие изменения мне нужно будет сделать на уровне скрипта?

Что я хочу:

1. if i access url http://localhost/symfony/admin/ then i should be redirected to http://localhost/symfony/admin/login if admin is not logged in and after successful login, i should be redirected to http://localhost/symfony/admin/ 

2. if i access url http://localhost/symfony/profile/ then i should be redirected to http://localhost/symfony/login if user is not logged in and after successful login, i should be redirected to http://localhost/symfony/profile/. 

По умолчанию FOSUserBundle создать пользователя с правами администратора. Итак, какое изменение необходимо внести, чтобы пул создавал роль пользователя для внешнего интерфейса автоматически и роль администратора для раздела admin.

ответ

2

Вам необходимо переопределить прослушиватель аутентификации-успеха в вашей конфигурации безопасности, чтобы перенаправить пользователя на разные страницы после входа в систему в зависимости от их ролей.

Посмотрите на this answer и, возможно, найдете какое-то вдохновение, глядя на symfony's DefaultAuthenticationSuccessHandler.

Далее вам необходимо переопределить обработчик отказа (см. this answer), чтобы пользователь перенаправлялся на разные страницы входа в зависимости от URL-адреса, к которому они пытаются получить доступ, без проверки подлинности.

+0

Хорошо, но конфигурация/изменения должны были содержать две отдельные страницы входа (одна для администратора и другая для обычного пользователя переднего конца)? – neeraj

+0

, если вы хотите использовать комплект для многопользовательской реализации, вы можете попробовать [PUGXMultiUserBundle] (https://github.com/PUGX/PUGXMultiUserBundle). – nifr

+0

Хорошо спасибо за ответ. – neeraj

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