2013-05-21 4 views
0

Я начинаю программист рамки zend. Я использовал ZfcUser для аутентификации и Bjyauthorize для авторизации. У меня есть тип пользователей: обычные пользователи и администратор. Так что я хочу сделать, чтобы направить пользователя на страницу A и администратора на страницу B после аутентификации. В файле в Кoнфигурировании Zfcuser не такая возможность у нас есть только эта линияZend Framework2 с использованием маршрутизации Zfcuser & Bjyauthorize

'logout_redirect_route' => 'zfcuser/login', 

как можно сделать указать diffrent маршрут для моих Дифференц пользователей?

ответ

0

Для меня ваша проблема не имеет ничего общего с ZfcUser или BjyAuthorize: просто дайте пользователю и администратору войти в ваш контроллер, и там вы можете отправить их в зависимости от роли пользователя.

return $this->forward()->dispatch('MyModule\Controller\Index', array('action'=>'PageB')); 
0

Предположим, что у вас есть роль администратора в bjyauthorize, которую вы хотите перенаправить на другой маршрут.

В вашем loginAction заменить код:

if ($this->zfcUserAuthentication()->getAuthService()->hasIdentity()) { 
     return $this->redirect()->toRoute($this->getOptions()->getLoginRedirectRoute()); 
    } 

с этим кодом:

if ($this->zfcUserAuthentication()->getAuthService()->hasIdentity()) { 
     $roles = $this->serviceLocator->get('BjyAuthorize\Provider\Identity\ProviderInterface')->getIdentityRoles(); 
     if (in_array('admin',$roles)) 
     { 
      return $this->redirect()->toRoute('admin_route'); 
     } else { 
      return $this->redirect()->toRoute('user_route'); 
     } 
    } 
Смежные вопросы