Bonjour à tous,
Après 2 jours de recherches infructueuses je me décide à vous consulter concernant mon problème car ce que je veux faire ne me semble pas si compliqué ni complètement extravagant mais je n'arrive pas à trouver de pistes qui pourraient m'aider.
Je vous expose mon problème.
J'ai une base de donnée centrale dans laquelle je stock mes utilisateurs et pour chacun d'eux le nom de la base client sur laquelle l'application de se connecter ensuite pour avoir accès aux données de l'utilisateur en question.
Donc je configure dans mon config.yml l'accès à la base centrale qui est toujours le même.
Je fait une requête sur cette base pour récupérer pour récupérer les infos de connexion à la base client.
J'ai réussi au cours de mes investigations à trouver un script qui permet de passer d'une base à une autre. J'ai donc créé un service avec ce script afin de pouvoir l'appeler dès que j'en ai besoin. Car malheureusement le changement de connexion ne persiste pas il faut donc faire appel au service avant chaque appel à mon entitymanager.
La ou ça se complique c'est que je souhaite utiliser le FOSUserBundle pour la gestion de mes utilisateurs mais que je ne peux pas faire appel a mon service avant de lancer la vérification de l'utilisateur. Ce qui fait que lorsque je remplis mon formulaire de login il fait la recherche sur la base centrale alors que les mots de passe utilisateurs sont stockés dans les bases client.
J'ai aussi vu que l'on pouvait surcharger les méthodes de connexion en les déplaçant directement dans le repository de mon entité utilisateur (notamment la méthode : "loadUserByUsername()").
Mais je n'arrive pas à appeler mon service de switch de base depuis un repository.
Alors mes questions sont les suivantes :
Comment faire en sorte que la connexion soit conservé une fois que la bascule a été faite une première fois ?
OU
Comment appeler un service dans un repository ?
OU
Une autre idée ?
Merci d'avance.
Partager