SonataAdminBundle - Filtrer en fonction de l'utilisateur courant
Dans mon dernier projet, j’ai dû lier une interface admin à un utilisateur, c’est-à-dire que je ne devais afficher que les objets que l’utilisateur a crée. Lorsqu’il crée un nouvel objet, on doit directement l’y associer.
Cette modification s’effectuer en 2 étapes, tous d’abord, on va lier l’utilisateur avec l’objet que l’on crée dans l’admin.
Au niveau de notre classe Admin, on doit définir la méthode getNewInstance, ainsi qu’une méthode qui permet d’injecter le security context afin de récupérer l’utilisateur courant.
Ensuite au niveau de notre fichier services.xml on doit ajouter le security context.
Deuxième étape, on ne doit afficher que les objets de l’utilisateur, pour ce là, on doit étendre le ModelManager et redéfinir la méthode createQuery
Ensuite on doit ajouter un service associé a cette classe
Et définir dans la configuration du projet que l’on veut utiliser notre classe.