0

Im trying to override EditableRolesBuilder in Security folder.

  • I try to make same hierarchy in Application\Sonata\UserBundle\Security\EditableRolesBuilder which extends the base one Sonata\UserBundle\Security\EditableRolesBuilder from vendor but with no success.
  • I try to override service in Sonata\UserBundle\Resources\config\admin.xml, to pass my custom class but i can't find anywhere how to override whole service.This service is without parameters but hardcoded class and i cant't pass it in config.yml
M Khalid Junaid
  • 63,861
  • 10
  • 90
  • 118

1 Answers1

0

In Sonata admin if you wish to override security roles handler you have to override 2 services

  • sonata.user.editable_role_builder
  • sonata.user.form.type.security_roles

And definitions will look like as below

    <services>
        <service id="sonata.user.editable_role_builder" class="Acme\DemoBundle\Security\EditableRolesBuilder">
            <argument type="service" id="security.context" />
            <argument type="service" id="sonata.admin.pool" />
            <argument>%security.role_hierarchy.roles%</argument>
        </service>
        <service id="sonata.user.form.type.security_roles" class="Acme\DemoBundle\Form\Type\SecurityRolesType">
            <tag name="form.type" alias="sonata_security_roles" />
            <argument type="service" id="sonata.user.editable_role_builder" />
        </service>
    </services>

For reference see Sonata Admin Override Security Roles Handler

M Khalid Junaid
  • 63,861
  • 10
  • 90
  • 118