2015-02-17 3 views
0

В настоящее время я занимаюсь разработкой приложения с использованием Symfony2.6. У меня есть некоторые проблемы. У меня есть два вида пользователей клиентов и работник так в моей базе данных у меня есть клиент таблицы и таблица сотрудники. Как я могу сказать symfony, чтобы посмотреть в этих двух таблицах учетные данные пользователя, когда пользователь попытается войти в систему?Symfony 2.6 - Поставщик услуг безопасности

Я знаю, что вы можете определить поставщика в файле security.yml, который может быть сущностью, но как я могу объявить двух поставщиков? возможно, или я должен сделать это другим способом?

поблагодарить всех за вас отвечает

ответ

0

у меня есть что-то подобное с (в настоящее время) двух разных типов пользователей. Однако, чтобы обрабатывать все логины и разрешения, я использую FosUserBundle и назначая им роли, которые я могу проверить, а затем извлекать профили пользователей на основе этого.

Чтобы обеспечить правильное соответствие ROLE_ * при создании пользователя, я выполнил вопрос SO, Adding new FOSUserBundle users to a default group on creation. Они пикап переменная сессии с будущим-ролью, которую они будут принимать, а затем у меня есть слушатель событий, чтобы установить эту роль Новоиспеченного FosUser:

<?php 
class UserCreationListener implements EventSubscriberInterface 
{ 

// lots of constructor setup, debugging, logging and checks removed from code 

public static function getSubscribedEvents() 
{ 
    return array(
     FOSUserEvents::REGISTRATION_SUCCESS => 'onRegistrationSuccess', 
    ); 
} 

public function onRegistrationSuccess(FormEvent $event) 
{ 
    $user = $event->getForm()->getData(); 
    $newRole = $this->session->get('futureRole', 'ROLE_CUSTOMER'); 
    $user->addRole($role); 
    $this->userManager->updateUser($user); 
    return $this->redirect->redirect('app_profile', 302); 
} 

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