Symfony2 benutzerdefinierte Benutzerprüfung basierend auf akzeptierten eula

8

Ich möchte ein benutzerdefiniertes Benutzer-Checker erstellen, um die Login-Aktion gegen die zuletzt akzeptierte eula zu validieren. " Idee ist ziemlich einfach, es wird viele Versionen von eula geben und Benutzer kann nicht anmelden, bis er die neueste eula akzeptiert.

Szenario ist:

  1. Der Benutzer erstellt ein neues Konto und akzeptiert eula.
  2. Eula wird aktualisiert
  3. Der Benutzer versucht sich anzumelden, aber er akzeptiert nicht die neueste eula
  4. Der Benutzer erhält das gleiche Login-Formular, aber mit dem zusätzlichen Feld "accept nearest eula"
  5. Der Benutzer meldet sich an und das System fügt Informationen ein: Aktuelles Datum und Uhrzeit, Benutzer-ID, Eula-ID, um die Akzeptanz von eula zu verfolgen.

Ich habe folgendes gefunden: Ссылка

Aber leider gibt es keine Vollversion des benutzerdefinierten Benutzer-Checkers. Wie implementiere ich den Rest?

    
Kaminari 19.06.2012, 12:11
quelle

3 Antworten

8

Die Antwort ist eigentlich ziemlich offensichtlich. In Ihrem benutzerdefinierten Bundle:

config.yml

%Vor%

Userchecker:

%Vor%     
Fatmuemoo 20.09.2013 14:17
quelle
6

Sie können Symfony's Benutzerprüfdienst ( security.user_checker ) in Ihrem Bundle neu definieren:

%Vor%

Erweitern Sie dann Symfony's UserChecker:

%Vor%

Der Dienst security.user_checker wird während des Authentifizierungsprozesses in \Symfony\Component\Security\Core\Authentication\Provider\UserAuthenticationProvider::authenticate() aufgerufen

    
gtb 20.01.2015 11:01
quelle
0

Warum verbinden Sie den Ereignis-Listener nicht mit dem kernel.request -Ereignis und sehen Sie, ob der aktuell angemeldete Benutzer die neueste EULA akzeptiert hat?

Um den aktuellen Benutzer zu erhalten, können Sie etwas wie folgt verwenden:

%Vor%     
Nikola Petkanski 19.06.2012 16:30
quelle