Může router poznat, zda se odesílá formulář?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
stepos
Člen | 36
+
0
-

Ahoj všem, stále začínám, tak se omlouvám, pokud je to trivialita, ale
potřeboval bych, aby určitý podadresář adresářové struktury (starého systému, ve kterém je php kód) byla určitým uživatelům utajena (obsluhuje určitý modul jen pro někoho). Uživatel má identitu v nette, kde se staví nový systém, ale občas je třeba přistoupit do starého kódu.

Mám presenter, který se spouští routerem na základě požadavku přístupu do adresářové struktury starého systému, a ten presenter includuje php kód starého systému.

Předpokládám, že bych mohl nastavit, že by presenter na základě identity a acl poznal, koho pustí a koho nepustí do dané složky. Ale kladu si otázku, zda by bylo možné nastavit kontrolu přístupu do složky ještě citlivěji na práva view a add/edit/erase. Pozná router, zda se odesílá třeba formulář (ne nette) v postovských proměnných, nebo to kontrolovat až v tom presenteru, který pouze includuje požadovaný soubor? Pokud by měl někdo práva jen vidět, nepustil by ho, pokud by se předávaly hodnoty POST (případně GET)…
Díky za nasměrování
Š+

CZechBoY
Člen | 3608
+
-1
-

Pokud uzivatel nema prava na odeslani toho formulare tak zobrazim 403 vyhozenim ForbiddenRequestException vyjimky a formular nezpracovavam.

stepos
Člen | 36
+
0
-

Díky, ale jak poznám, že byl formulář odeslán, abych mohl práva ověřit?
Tohle není nette formulář, je to klasický starý špatný php kód, kde práva jsou špatně vymyšlená.
Přemýšlím proto o tom, že bych to řešil v nette. Router by volal presenter, a ten rozhodl o oprávnění. Ale nevím, jestli je nějaká nette vychytávka na to, aby presenter (router) poznal, že se odesílá formulář, než pouhé isset($_POST).
Díky

CZechBoY
Člen | 3608
+
0
-

Router ale neresi autorizaci.
Proste v tom formu zkontroluj jestli je odeslanej a pak jestli na to ma uzivatel prava.

pata.kusik111
Člen | 78
+
0
-

Rozhodně řešit až v presenteru, jak píšeš. Router autorizace vůbec nezajímá.

Oli
Člen | 1215
+
0
-

Nette forms mají metodu isSubmited (nebo něco na ten způsob). Nevim ale jak funguje (na základě čeho se rozhoduje).

Nette forms se můžou pouzit i samostatne. Nevim jak je to velký formulář a jestli je dobre/bezpecne napsanej, ale nestalo by za to prepsat ho do Nette Form?

stepos
Člen | 36
+
0
-

Diky moc za odpovedi,
vim, ze by bylo nejlepsi to predelat, ale jedna se o mnoho desitek tisic radku stareho kodu v systému, ktery se uz moc neda udržovat.
Proto v Nette pokracuju dal a snad postupně se to predela, ale do te doby s tim proste musím pracovat.
Slo mi jen o to, jestli je v nette moznost poznat na základě písemné http pozadavku, jestli se odesilaji data nebo ne.
Diky.

pata.kusik111
Člen | 78
+
0
-

v Presenteru stačí napsat:

$this->getHttpRequest()->getMethod();

viz api dokumentace