Configurar symfony 3 para utilizar FOSUserBundle con conexion dinamica de bd

Buenas noches, a ver si me puedes ayudar porque ya no sé que hacer. Estoy desarrollando una aplicación con Symfomy 3. Quiero utilizar la misma aplicación para varias sucursales de manera que tengo varias bases de datos, una para cada sucursal y todas las bd tienen la misma estructura.

Para el control de usuarios utilizo FOSUserBundle y necesito que casa sucursal tenga su propio control de usuarios.

He creado dos conexiones doctrine: 1ª. Default que enlaza con una bd que solo tiene datos de las bd de las sucursales a las que se puede conectar. 2ª. Es una conexión dinámica que según la sucursal seleccionada en el inicio enlaza con una bd u otra según los datos proporcionados por la tabla de la bd default.

He creado un servicio para que asigne a la conexión dinámica la bd correspondiente a la sucursal seleccionada. Tengo claro como configurar los controladores de la aplicación para que se conecten al em dinámica utilizando el servicio que he creado pero no sé como configurar el formulario de login para que se valide en la bd de la sucursal elegida al iniciar la aplicación.

Espero haberme explicado bien, a ver si alguien me puede dar una solución. Gracias, Un saludo, Inma.

Respuestas

#1

Hola Inma, como no he trabajado con base de datos dinamicas, te voy a pasar la documentación de Symfony con respecto al tipo de autenticación Guard que te permite crear un sistema de autenticación a la medida de tus necesidades:

Basicamente es una clase Autenticadora que tiene una serie de métodos y en cada método tu puedes añadir la lógica necesaria para loguearte contra tu conexión dinámica.

Particularmente he leido que doctrine no se lleva bien con bases de datos dinamicas, pero si lograste resolver ese punto, excelente, no debería entonces costarte mucho implementar el sistema de autenticación con guard.

Si te decides por esta solución y tienes dudas al respecto, comentalas por acá.

Saludos!

#2

Gracias Manuel, voy a ver si me aclaro con la documentación que me has pasado. Ya te diré como me ha ido. Un saludo, Inma.

#3
#4

@InmaRuizS necesitas un identificador para seleccionar la base de datos del usuario, puede enviarlo en un campo del formulario, a través del dominio u otra manera que se te ocurra.