ich eine Anwendung in Symfony 3 zu schaffen, die die folgende Struktur aufweist:demselben Benutzer, mehrere Konten mit unterschiedlichen Rollen
class Account {
private $id;
private $name;
}
class User {
private $id;
private $email;
private $password;
}
class UserAccount {
private $id;
private $userId;
private $roles;
}
Wie können wir ein Benutzer sehen auf mehrere Konten bei verschiedenen Rollen für jeden gehören können Konto, sagen wir, dass es für Konto 1 die Rolle ROLE_ADMIN und für Konto 2 die Rolle ROLE_EDITOR hat.
Das Problem ist, dass der Benutzer eine Auswahlbox haben muss, in der er das Konto ändern kann. Dies bedeutet, dass die Rolle aus der Datenbank geladen werden muss, basierend auf einem Wert für Sitzung (da die Konto-ID) festgelegt wird Session.
Dies bedeutet auch, dass wenn ein Benutzer sich an der Site anmeldet, es keine Rolle gibt, da die Rolle durch das ausgewählte Konto bestimmt wird.
Ich habe Probleme mit der Verwendung von Ereignissen, aber das scheint nicht von dem zu funktionieren, was ich gelesen habe.
Hat jemand irgendwelche Gedanken/Einblicke in diese?
Ich habe meine eigenen benutzerdefinierten Authentifikator, da ich sowohl MD5 und bcrypt Passwörter unterstützen muss.
Das bedeutet, dass ich eine Klasse habe, die SimpleFormAuthenticatorInterface von Symfony erweitert. Dadurch kann ich die Benutzer mit MD5 anmelden und sie automatisch auf bcrypt upgraden.
Meine User-Modell (das ist ein normaler) und benutzerdefinierte Authenticator: Gist
Um zu sumarize: Ich brauche eine Art und Weise, in der ich die Rollen des Benutzers ändern kann, nachdem er angemeldet hat, ohne das zu Zwingen Neuanmeldung des Benutzers
Mann, Sie brauchen Vererbung so schlecht –
auch brauchen wir mehr Informationen, um dies zu einer legitimen Frage machen, das ist sehr allgemein und wird nur meinungstechnische Antworten geben. –
@ iam-decoder Welche Art von Informationen benötigen Sie? Fragen und ich werde zur Verfügung stellen, ich habe gelernt, über die Vererbung, das Konto ist eine Implementierung von Benutzer, aber das in meinem Kopf immer noch nicht funktioniert .. da die Rollen noch nach der Anmeldung geändert werden müssen. – Tio