2016-06-10 2 views
3

Ich habe folgende Doktrin-Entitäten in meinem Symfony2.8-Projekt.Wie können Benutzerrollen in einer separaten Tabelle in Symfony2 gespeichert werden?

Benutzer

id 
email 
username 
password 

Organisation

id 
name 
subdomain 

UserOrganization

organization_id 
user_id 
roles 

Ich brauche Benutzerrolle laden s von UserOrganization Tabelle, Wie kann ich den Symfony-Authentifizierungsablauf überschreiben, um Benutzerrollen aus der Entität "UserOrganization" zu laden.

HINWEIS:

xyz.mydomain.com hier ist xyz Organisation.

so während der Benutzer versucht, von xyz Sub-Domain Symfony2 einzuloggen Rollen für den Benutzer von xyz Organisation Rekord in UserOrganization Tabelle

+0

also zwei Fragen: wie man user_roles aus der Datenbank lädt und wie die aufgerufene URL im Controller aufgerufen wird. Könnten Sie bitte Ihre Frage teilen? und was hast du bisher versucht? – LBA

+0

Haben Sie eine oneToMany-Beziehung zwischen User und UserOrganization eingerichtet? Wenn dies der Fall ist, passen Sie User :: getRoles an, um die gewünschten Informationen zurückzugeben. Andernfalls schließen Sie Ihren eigenen Benutzeranbieter an, der die Abfragen durchführt. – Cerad

+1

Normalerweise werden Benutzerrollen in derselben Tabelle gespeichert, in der Benutzername- und Kennwortfelder (z. B. Benutzer) verfügbar sind, aber in meinem Fall möchte ich für jede verknüpfte Organisation des Benutzers unterschiedliche Rollen zuweisen. –

Antwort

0

Sie implementieren sollten Ihre eigenen Custom UserProvider

, in dem lesen müssen Sie injizieren das Repository UserOrganization und Abfrage dieses Repository auf dem implementierten Anbieter.

Denken Sie daran, dass Ihre UserOrganization Entity-Klasse UserInterface implementieren muss, um während des Sicherheitsflusses verwendet zu werden.

Verwandte Themen