Symfony2 - logowanie na dowolnego użytkownika

0

Cześć,

Mam stronę napisaną w symfony2 i potrzebuję zrobić, aby administrator miał możliwość zalogowania się na konto dowolnego użytkownika.

Mam dwa pomysły jak to zrobić:

  1. Po zalogowaniu na konto administratora wyświetla się lista użytkowników i przy każdym przycisk zaloguj. Wtedy automatycznie zostajemy zalogowani na to konto.

  2. Wydaje mi się, że szybsze i łatwiejsze w implementacji. W formularzu logowania podajemy login użytkownika + hasło, które zna tylko administrator i po tym haśle system wie, że logujemy się jako administrator na czyjeś konto.
    Normalnie użytkownik podaje login+hasło, a admin może podać login_użytkownika+hasło_do_każdego_konta

Które rozwiązanie jest lepsze? Pewnie ze względów bezpieczeństwa pierwsze rozwiązanie?
Ogólnie można coś takiego zrobić w Symfony2, aby zalogowało mnie na dowolnego użytkownika znając tylko login jeśli korzystam z wbudowanego mechanizmu Autentykacji?

0

Ze względów bezpieczeństwa żadne.
Po co w ogóle taka funkcja?

1

Można to zrobić używając wbudowanego mechanizmu:

http://symfony.com/doc/current/cookbook/security/impersonating_user.html

Wystarczy, że twój admin ma tez ROLE_ALLOWED_TO_SWITCH.

Twoje logowanie na użytkownika to stworzenie przycisku z parametrem _switch_user=username, wylogowanie się to przycisk z parametrem _switch_user=_exit

0

Jeżeli używasz FOSUserBundle (jeśli nie, to polecam :)), to w poniższym wątku masz odpowiedź na podobne pytanie:

symfony2 ustawienie sesji

[Mirek]

1 użytkowników online, w tym zalogowanych: 0, gości: 1