Hinzufügen neuer FOSUserBundle-Benutzer zu einer Standardgruppe beim Erstellen

8

Ich baue mein erstes ernstzunehmendes Symfony2-Projekt. Ich erweitere den FOSUserBundle für meine Benutzer- / Gruppenverwaltung und möchte, dass neue Benutzer automatisch zu einer Standardgruppe hinzugefügt werden. Ich denke, Sie müssen einfach den User-Entity-Konstruktor wie folgt erweitern:

%Vor%

Aber meine Frage ist, wie bekomme ich meine Entity $ defaultGroup an erster Stelle?

Ich habe versucht, den Entity Manager aus der Entity heraus zu benutzen, aber dann habe ich gemerkt, dass es dumm ist und Symfony einen Fehler geworfen hat. Ich googelte dafür, fand aber keine wirkliche Lösung außer vielleicht dafür einen Service einzurichten ... obwohl das für mich ziemlich unklar scheint.

    
Weengs 11.03.2013, 05:56
quelle

2 Antworten

10

OK, ich habe angefangen, an der Implementierung von artworkad zu arbeiten.

Als erstes habe ich FOSUserBundle in composer.json auf 2.0.*@dev aktualisiert, weil ich Version 1.3.1 verwendet habe, die die FOSUserEvents-Klasse nicht implementiert. Dies ist erforderlich, um meine Registrierung zu abonnieren.

%Vor%

Dann habe ich einen neuen Service hinzugefügt:

%Vor%

Im XML habe ich dem Dienst gesagt, dass ich über ein Argument doctrine.orm.entity_manager Zugang zu Doctrine benötige. Dann habe ich den Listener erstellt:

%Vor%

Und im Grunde genommen ist es das!

Nach jeder Registrierungserfolg wird onRegistrationSuccess() aufgerufen, so dass ich den Benutzer durch die FormEvent $event und fügen Sie es zu meiner Standardgruppe, die ich durch Doctrine.

    
Weengs 12.03.2013, 04:19
quelle
3

Sie haben nicht gesagt, wie Ihre Benutzer erstellt werden. Wenn ein Administrator die Benutzer erstellt oder eine benutzerdefinierte Registrierungsaktion ausführt, können Sie die Gruppe in der Aktion des Controllers festlegen.

%Vor%

Wenn Sie jedoch fosuserbundles build in registration verwenden, müssen Sie sich in die Controller einklinken: Ссылка und verwenden Sie einen Ereignis-Listener.

    
Lost in OWL 11.03.2013 08:38
quelle

Tags und Links