2016-05-06 17 views
1

Ich fühle mich hier ein wenig fest und bin mir nicht sicher, welchen Weg ich gehen soll. Ich verwende das Doctrine-ORM, in dem ich eine User Entität und eine Group Einheit habe.Getrennte Anmeldeformulare für Benutzertypen

Die Entität User hat ein Feld "gehört zu", das definiert, ob sich die Benutzer in der medizinischen Gruppe, Patientengruppe oder Firmengruppe befinden. Es gibt zwei Seiten zum Anmelden auf der Website: nennen wir sie page1 und page2. Ich möchte, dass sich alle (Patienten, Ärzte und Firmen) auf Seite1 einloggen können, aber nur Ärzte und Firmen auf Seite2.

Um pacients von der Anmeldung von der page2 Form zu beschränken, Ich habe versucht, einen neuen Login-Controller und das Überschreiben der anderen loginAction()-Methode und die checkAction() Methode aber das Problem scheint zu schaffen zu sein, dass ich nicht die Formularelemente erfassen kann. Ich habe auch versucht, einen neuen Eintrag in die Firewall zu erstellen, aber ich sehe nicht, dass das hilfreich ist, da ich bestimmte Seiten nicht auf eine Klasse beschränken muss, da dies bereits in Controllern erfolgt.

Muss ich einen benutzerdefinierten Validator schreiben, um dies zu erreichen? Wenn ja, wie kann ich überprüfen, welche Art von Benutzer ich habe?

Andere Ideen sind willkommen.

Antwort

0

überprüfen diese, vielleicht nützlich:

  1. definieren eine gewisse Rolle in UserEntity
  2. Dann in app/config/security.yml:

    security: 
    
        role_hierarchy: 
         ROLE_ADMIN:   [ROLE_FIRMS,ROLE_MEDICS] //define in User Entity 
    

    access_control:

    - { path: ^/someRoute/page$,  roles: ROLE_ADMIN } 
    
  3. andere Dinge abhängig von Autorisierungssystem, das verwendet.

Dies ist nützlich Bundle für voll Benutzer steuern: FOSUserBundle

Verwandte Themen