In Sylius (Symfony3-Bundle) habe ich das Registrierungsformular angepasst, um einige Felder hinzuzufügen, insbesondere "Kontentyp" (pro oder privat). Je nach Typ werden einige Funktionen nicht aktiviert. Um dies zu tun, habe ich darüber nachgedacht, Benutzern unterschiedliche Rollen zu geben.In Sylius, wie die Benutzerrolle in Abhängigkeit von Benutzerdaten auswählen?
Da die Authentifizierung von Sylius durchgeführt wird, habe ich mich gefragt, wie das Standardverhalten überschrieben werden kann, um die Rolle entsprechend den Typendaten festzulegen?
Danke für Ihre Hilfe!
Tks Zaleslaw, aber ich verstehe nicht: die ShopUser ein Sylius Entity ist, also sollte ich es geben, eine Rolle von mir definiert sein können, wenn erstellt wird, nicht wahr? – wyllyjon
Ja, 'ShopUser' ist eine Entität, also sollten Sie in der Lage sein, es zum Beispiel durch ein gut definiertes' ChoiceType'-Feld in Form zu setzen. Wenn Sie die Standardrollen ändern möchten, sollten Sie die Entität "ShopUser" in Ihrer App außer Kraft setzen (standardmäßig ist dies die Rolle "ROLE_USER"). Man denke nur an '' $ roles'' Eigenschaft als jede andere Eigenschaft, ein Feld für sie machen und es in Form wählen;) – Zaleslaw
Ich bin nicht sicher, ob ich verstehe, aber ich will nicht die Rolle in Form gewählt werden vom Benutzer. Ich habe bereits das 'type'-Feld im Formular, und entsprechend dem ausgewählten Wert bewillige ich dem Benutzer eine Rolle. In dem Registerformular ist das verwendete Modell "Kunde" und ShopUser hat ein "Kunden" -Attribut. Was ich getan habe, überschreibe ShopUser, setze setCustomer außer Kraft, und innerhalb dieser Methode, teste das Attribut 'type' und rufe 'addRole' auf. Aber ich habe immer noch die Standardrolle und nicht die neuen. Ich sehe nicht, welche andere Methode überschrieben werden kann, um meine Rollen korrekt hinzuzufügen – wyllyjon