J'utilise FOSUser avec SonataUser & SonataAdmin. J'ai aussi utilisé SonataEasyExtends pour créer app/Application/Sonata/UserBundle comme il est conseillé dans plusieurs tutos quand on veux étendre SonataUser.

Je cherche simplement à virer des champs du formulaire d'admin des users, principalement les champs "Social" (facebook, twitter, ...)

J'ai tenté d'overrider le formulaire en créant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#app/Application/Sonata/UserBundle/Admin/Model/UserAdmin.php
 
namespace Application\Sonata\UserBundle\Admin\Model;
 
use Sonata\UserBundle\Admin\Model\UserAdmin as UserAdmin;
 
class MyUserAdmin extends UserAdmin
{
    /**
     * {@inheritdoc}
     */
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->with('General')
                ->add('username')
                ->add('email')
                ->add('plainPassword', 'text', array('required' => false))
            ->end()
            ->with('Groups')
                ->add('groups', 'sonata_type_model', array('required' => false))
            ->end()
        ;
 
        if (!$this->getSubject()->hasRole('ROLE_SUPER_ADMIN')) {
            $formMapper->with('Management')
                ->add('roles', 'sonata_security_roles', array(
                    'expanded' => true,
                    'multiple' => true,
                    'required' => false
                ))
                ->add('locked', null, array('required' => false))
                ->add('expired', null, array('required' => false))
                ->add('enabled', null, array('required' => false))
                ->add('credentialsExpired', null, array('required' => false))
            ->end();
        }
 
        $formMapper
            ->with('Security')
                ->add('token', null, array('required' => false))
                ->add('twoStepVerificationCode', null, array('required' => false))
            ->end();
    }
}
Je pense que je dois déclarer un service et dire à Sonata de l'utiliser. Je ne sais pas comment faire. Est-ce que je suis au moins dans la bonne direction ?