Temat: Dostęp do id zalogowanego użytkownika w plikach Form

Czy ktoś wie jak uzyskać dostęp do id zalogowanego użytkownika w pliku np AlbumForm?

konto usunięte

Temat: Dostęp do id zalogowanego użytkownika w plikach Form

W przypadku formularzy możesz spokojnie przekazać w kontruktorze albo później jako parametr wywołania metody.

Oczywiście jeśli o to Ci chodzi, bo pytanie tak sformułowałeś, że nie ma innej opcji tylko zgadywać.
Paweł Skroban

Paweł Skroban Software Develoepr

Temat: Dostęp do id zalogowanego użytkownika w plikach Form

Jeśli chodzi o pobranie użytkownika w lib/form, możesz zrobić to w taki sposób:
$user = sfContext::getInstance()->getUser();

Temat: Dostęp do id zalogowanego użytkownika w plikach Form

Potrzebuję id w pliku form, żeby np zamiast pobierania wszystkich rekordów dajmy na to z tabeli Album, pobrało mi tylko takie, które należą do zalogowanego użytkownika.

$user = sfContext::getInstance()->getUser();


Gdzieś wyczytałem o tym sposobie ale również wyczytałem, że nie jest on polecany ze względów bezpieczeństwa... To prawda?
===============================================
Problem rozwiązany.
W konstruktorze
$this->form = new ZdjecieForm(null, $id);

gdzie $id jest tablicą opcji:
$id = array('user' => $this->getUser()->getGuardUser()->getId());

a w metodzie, którą wywołuję dla opcji criteria jako parametr ustawiam:
$this->getOption('user')

PozdrawiamKamil Demurat edytował(a) ten post dnia 21.12.11 o godzinie 09:29

konto usunięte

Temat: Dostęp do id zalogowanego użytkownika w plikach Form

W 99/100 przypadków możesz spokojnie używać sfContext::getInstance(). Tym bardziej w formularzu. Chyba, że kontextu nie będzie to wywali się wyjątek, ale to sporadyczne przypadki.
Jakub Zalas

Jakub Zalas Software Engineer,
Symfony Core
Contributor

Temat: Dostęp do id zalogowanego użytkownika w plikach Form

Kamil Demurat:

$user = sfContext::getInstance()->getUser();


Gdzieś wyczytałem o tym sposobie ale również wyczytałem, że nie jest on polecany ze względów bezpieczeństwa... To prawda?

Nie ma to nic wspolnego z bezpieczenstwem.

Problem z pobieraniem kontekstu przy pomocy getInstance() jest taki, ze wewnatrz swojej klasy wprowadzasz zaleznosc od obiektu, ktory nie jest z nia powiazany. Kontekst nie jest potrzebny Twojemu formularzowi i nie musi on nic o nim wiedziec.

Lepiej jest jawnie przekazac potrzebne informacje z zewnatrz (np w konstruktorze, tak jak zrobiles). Taki kod jest latwiej testowalny (w przeciwienstwie do sytuacji, kiedy uzywasz sfContext::getInstance()).

W symfony 1.x uzywanie sfContext::getInstance() uwazane jest za zla praktyke.

--
Kuba
http://symfonylab.plJakub Zalas edytował(a) ten post dnia 22.12.11 o godzinie 13:28

Następna dyskusja:

[symfony][sfGuardPlugin] po...




Wyślij zaproszenie do