2016-03-26 12 views
1

Beachten Sie vorher: Ich kann das Sicherheitspaket nicht verwenden, da die von mir verwendete Datenbank auch von anderen Anwendungen verwendet wird, die auf einem ganz anderen Rollensystem basieren.Variable vor jedem Controller setzen

Ich versuche eine Variable zu setzen, um zu überprüfen, ob ein Benutzer vor jeder Controller-Aktion angemeldet ist. Was ich tun möchte, ist zu überprüfen, ob es angemeldet ist (durch eine Sitzung), und wenn das der Fall ist, laden Sie die Entität, die einer Abfrage in meinem UserRepository entspricht.

Ich weiß, dass dies normalerweise über das Security Bundle von Symfony geschehen würde, aber da Sie das UserProviderInterface implementieren müssen, kann ich es überhaupt nicht verwenden, wenn jemand weiß, dass Sie Ihr eigenes UserProviderInterface mit einer benutzerdefinierten Übersetzung schreiben können Zuordnung für Rollen. Das wäre auch toll.

Ich hoffe, ich war informativ über meine Frage.

TL; DR: Gibt es eine Möglichkeit, vor jeder Controlleraktion eine Variable zu setzen, auf die der folgende Controller zugreifen kann.

+0

warum Sie Cookies nicht verwenden? –

+0

@AslanKaya Weil ein Cookie unsicher ist. –

Antwort

1

Ich glaube, Sie Sitzungen verwenden können:

use Symfony\Component\HttpFoundation\Request; 

public function indexAction(Request $request) 
{ 
    $session = $request->getSession(); 

    // store an attribute for reuse during a later user request 
    $session->set('foo', 'bar'); 

    // get the attribute set by another controller in another request 
    $foobar = $session->get('foobar'); 

    // use a default value if the attribute doesn't exist 
    $filters = $session->get('filters', array()); 
} 

überprüfen Sie bitte Link http://symfony.com/doc/current/book/controller.html

+0

Ist es möglich, eine Entität in eine Sitzung zu setzen? Edit: Nun, es scheint so zu sein. Aus irgendeinem Grund dachte ich, das wäre nicht möglich! Danke für die schnelle Antwort! –