Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] zabronić dostęp do metody
AxZx
post
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


witam

w temacie Temat: Symfony_szablony_widoki opisałem jak można zapisać widok do bazy.
powstaje pytanie jak zabronić uruchomienia jakiejś akcji z przeglądarki?

żeby można było z tej metody korzystać w $this->getController()->getPresentationFor() ale żeby ktoś nie mógł sobie wpisać w pasku URL przeglądarki tej akcji i nie zobaczył rezultatu. to samo jest z metoda sendemail - tam też podaje się jakś konkretną akcję konkretnego modułu, jako akcja która wysyła maila.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Ten kod, który podałem powyżej to z rozpędu, dlatego nie działa.

Ten kod nie pozwala na dostanie się do akcji przez podany adres.
  1. <?php
  2. $actionStack = $this->getController()->getActionStack();
  3. $index = $actionStack->getSize() - 2;
  4. $entry = $actionStack->getEntry($index);
  5.  
  6. if((!$entry) || ($entry->getModuleName() == $this->getModuleName()) && ($entry->getActionName() == $this->getActionName()))
  7. {
  8.  $this->forward404();
  9. }
  10. ?>


A ten kod pozwoli na wywołanie akcji tylko z akcji, którą podasz.
  1. <?php
  2. $actionStack = $this->getController()->getActionStack();
  3. $index = $actionStack->getSize() - 2;
  4. $entry = $actionStack->getEntry($index);
  5.  
  6. if(($entry) && ($entry->getModuleName() != 'test' || $entry->getActionName() != 'A'))
  7. {
  8.  $this->forward404();
  9. }
  10. ?>


Jest jeszcze inna prosta metoda, poprzez routing. Dodać taką regułe, aby łapała adres do akcji chronionej i uruchamiała tą właściwą.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 17:55