2017-08-04 1 views
1

Ich habe FOSUser Bundle und Easyadmin in Symfony 3 installiert. Alles funktioniert gut.So erstellen Sie eine separate Login-Seite für Easyadmin und Client-Seite in Symfony 3

FYI, meine Route für easyadmin ist /admin.

Wenn der Benutzer nicht angemeldet ist und auf die Route /admin zugreift, wird er an /login umgeleitet, das das konfigurierte FOSUser-Bundle ist.

Ich möchte eine separate Seite für Admin-Login und Client-Login haben.

Angenommen, der Benutzer (nicht angemeldet) wird auf /admin zugreifen, sollte es an Admin-Login umgeleitet werden, die /admin/login ist. Und wenn der Benutzer auf /dashboard des Clients zugreifen wird, sollte es an /login umgeleitet werden.

Unten ist mein security.yml Konfiguration:

#From security.yml file 

    firewalls: 
    main: 
     pattern: ^/ 
     form_login: 
      provider: fos_userbundle 
      csrf_token_generator: security.csrf.token_manager 
      # if you are using Symfony < 2.8, use the following config instead: 
      # csrf_provider: form.csrf_provider     
      login_path: /login 
      check_path: /login_check 
      always_use_default_target_path: false 
      default_target_path: /dashboard 

unten meine routing.yml Konfiguration:

#routing.yml 
easy_admin_bundle: 
    resource: "@EasyAdminBundle/Controller/" 
    type:  annotation 
    prefix: /admin 

Weiß jemand?

+0

wenn Sie einige Berechtigungen für Benutzer-Tabelle hinzufügen, dann können Sie es mit einer Login-Seite tun, PHP Figur heraus lassen, wenn es einen Benutzer oder Administrator ist – Jorn

+0

ich das fosUser Bündel verwenden. Es wird automatisch auf '/ login' umgeleitet, wenn ich versucht habe auf'/admin' zuzugreifen. Hast du einige Tutorials dazu? Danke – zms

+0

Ich kenne das FosUser-Bundle nicht. Aber was ich sage ist, dass Sie nur '/ login' brauchen, wenn Sie nach den Benutzerberechtigungen suchen. Sonst wird es wahrscheinlich einen Weg geben, aber nicht einen, mit dem ich dir helfen kann, sorry. – Jorn

Antwort

0

Nachdem ich meine Einstellungen geändert habe, habe ich mein Problem behoben.

Ich habe prefix:/admin unter fos_user auf meinem Routing hinzugefügt. Das heißt, die Anmeldung wird zu /admin umgeleitet, aber dann, da der Benutzer noch nicht angemeldet ist, wird es zurück zu /admin/login uri.

# app/config/routing.yml 
fos_user: 
    prefix: /admin 
    resource: "@FOSUserBundle/Resources/config/routing/all.xml" 

#Easy admin bundle 
easy_admin_bundle: 
    resource: "@EasyAdminBundle/Controller/" 
    type:  annotation 
    prefix: /admin 

Auch hier ist die Konfiguration auf meiner security.yml. Stellen Sie sicher, dass der Anbieter fos_userbundle ist.

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ] 
providers: 
    fos_userbundle: 
     id: fos_user.user_provider.username_email 

firewalls:    
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 
    admin_area: 
     pattern: ^/admin 
     anonymous: ~ 
     provider: fos_userbundle 
     form_login: 
      default_target_path: /admin 
      check_path: /admin/login_check 
      login_path: /admin/login 
      remember_me: true 
     logout: 
      path: /admin/logout 
      target: /admin 
    main: 
     anonymous: ~ 
Verwandte Themen