Autorizacia v controloch pomocou anotacii

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

Zdravim,
v presenteroch pouzivam na autorizaciu anotacie a metodu checkRequirements. Vsimol som si, ze v controloch sa tato metoda vola pri volani handle* funkcii. Je mozne urobit autorizaciu pre control tak, aby sa pri nedostatocnych opravneniach jednoducho nevykreslil?
Jedine co mi napada, je pisat anotacie pred triedu a v konstruktore (alebo render funkcii) ziskat reflection a overit danu anotaciu a pokial nesplna, tak control nevykreslit (a samozrejme zamedzit zavolaniu akejkolvek funkcie). Je to dobry postup, alebo ma nette nieco lepsie? Chcel by som sa tymto hlavne vyhnut velkemu mnozstvu if-ov priamo v sablonach. Diky.

enumag
Člen | 2118
+
0
-

Nette na to nejenže nemá nic lepšího, spíše na to nemá vůbec nic. ;-)

Zamysli se ale, zda to opravdu potřebuješ na úrovni komponent. Osobně jsem spíše potřeboval zabezpečit aby komponenty byly přístupné jen při určitých akcích (jinak nebude vůbec možné ji vytvořit, tedy ani zavolat signál) s tím že potřebná oprávnění by kontrolovala už ta akce. Tvůj případ bude ale možná jiný.

pogo
Člen | 29
+
0
-

Vyzera, ze presunutie overovania do createComponent() bude bohate stacit, diky:)