Search code examples
symfonysonata-adminsonatasonata-user-bundle

Override Sonata Users services Menu Group


I make user of the Sonata User Bundle. According to the documentation under section 2.5 Extending the Bundle they want me to generate a complete new bundle for my user and group entities. I think this is completely unnecessary and I don't want that extra bundle. So I've created my User and Group entities in my AppBundle and I extend them from the Sonata\UserBundle\Entity\BaseUser entities.

After this, I've changed my fos_user user_class and group_class to my new entities.

fos_user:
    db_driver:      orm
    firewall_name:  main
    user_class:     AppBundle\Entity\User

    group:
        group_class:   AppBundle\Entity\Group
        group_manager: sonata.user.orm.group_manager

    service:
        user_manager: sonata.user.orm.user_manager

Everything works perfectly, my user and group tables in my database is generated correctly, I can create users through the fos user command line, and I can log in.

In the menu is an automatically generated user group that contain the user and group entities (see the image below). Now the only problem is to override the services for this entities to them to use my own entity classes, because when I click now on one of them they want the entities in the extended bundle that I don't want. How can I tell sonata to make use of my own services? Or even, how can I just remove or hide the Users (with Users and Groups) completely?

enter image description here


Solution

  • After some digging in Sonata User Bundle files, I see that the entities can be set with a parameter. So all I had to do was to add;

    parameters:
        sonata.user.admin.user.entity: AppBundle\Entity\User
        sonata.user.admin.group.entity: AppBundle\Entity\Group
    

    in my config.yml file.