Symfony i wylogowywanie z systemu

Może jeszcze nic nie było na temat logowania na stronach opartych o framework Symfony, ale właśnie rozpocząłem pracę nad CSS-ami w pewnym rozbudowanym systemie wewnętrznym. Oprócz CSS-ów wziąłem na siebie proste zadania programistyczne. Ciekawe czy dam radę. Póki co daję :)

Pierwszym zadaniem jakie musiałem wykonać, było usunięcie błędu związanego z logowaniem.

Oryginalna funkcja, po kliknięciu w przycisk faktycznie wylogowuje usera ale jednocześnie pozostawia ostatni adres url w niezmienionym stanie np:

{code type=php}http://system.firmaabcde.pl/user/dodajusera/1{/code}

Zasadniczo, klientowi chodziło by po wylogowaniu adres wygladał następująco:

{code type=php}http://system.firmaabcde.pl{/code}

Funkcję tą realizujemy za pomocy klasy, np wylogujUsera():
{code type=php}
public function wylogujUsera() {
$this->getUser()->setAuthenticated(false);

$this->getUser()->shutdown();

$this->redirect(‚@homepage”);
}
{/code}

Funkcję tą wywołujemy z dowolnego miejsca naszego serwisu np, jak u mnie:

{code type=php}

<span>| <a href=”<?php echo url_for(‚@autoryzacja_wyloguj’); ?>”>wyloguj</a></span>

{/code}

W pliku routingowym mamy przypisaną odpowiednią klasę i akcję dla tego wywołania:

{code type=php}autoryzacja_wyloguj:
url:   /wyloguj
param: { module: autoryzacja, action: wylogujUsera }
{/code}

Sama klasa i akcja znajduje się w katalogu modułu Autoryzacja w katalogu apps

A wyglda samej akcji możemy zobaczyć na początku :)

Leave a Reply