Ajouter une valeur par défaut rôle au cours de l'enregistrement de l'utilisateur avec FOSUserBundle

Version : Symfony 2.2

J'essaye d'ajouter un rôle par défaut lorsqu'un utilisateur de s'inscrire sur mon site. J'utilise FOSUserBundle et je vois bien que quand un utilisateur à enregistrer le rôle de champ est vide dans une base de données.
Je commence avec cet énorme paquet et il n'est pas très facile à comprendre. J'ai donc lu toute la documentation et je ne suis pas sur que faire.

Pour l'instant, j'ai créer un Événement ajouter ce rôle de manière dynamique, mais il ne fonctionne pas (je n'ai pas d'erreur mais ma base de données est toujours vide) je ne suis même pas sur que c'est la bonne façon de le faire ?

Mon Cas :

use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Event\FormEvent;
use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;

class AddDefaultRoleListener implements EventSubscriberInterface {

  private $container;

  public function __construct(Container $container)
  {
    $this->container = $container;
  }

  /**
   * {@inheritDoc}
   */
  public static function getSubscribedEvents()
  {
    return array(
        FOSUserEvents::REGISTRATION_SUCCESS => 'onAddDefaultRoleSuccess',
    );
  }

  public function onAddDefaultRoleSuccess(FormEvent $event)
  {
    $doctrine = $this->container->get('doctrine');
    $em = $doctrine->getManager();

    $user = $event->getForm()->getData();
    $user->addRole('ROLE_USER');
    //$user->setRoles(array('ROLE_USER'));

    $em->persist($user);
  }
}

Comme vous le voyez j'ai créer un simple événement à l'écoute sur les REGISTRATION_SUCCESS, mais rien ne semble fonctionner. C'est mon premier essai avec des Événements et des services. Donc si quelqu'un a un conseil, je vais le prendre 🙂

Grâce

InformationsquelleAutor Epok | 2013-04-13