Jak automaticky zobrazovat/schovávat odkazy na presentery/akce dle práv v ACL?

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

Zdravím všechny,

Chtěl bych se zeptat na takovou drobnost – nevím, zda to je něco, co každý řeší denně, ale nenašel jsem žádné elegantní řešení out-of-box, až mě to překvapilo :-)

Jedná se mi o to, že pokud mám aplikaci, ve které mám v ACL různé role a práva k různým akcím presenterům, musím u každého odkazu, který se týká určitých rolí (a naopak některých ne), dávat podmínku, zda ho vykreslit.

Inspiracace např. z tohoto:

if ($user->isAllowed('page', 'delete')) {
    $html .= '<a href="/delete.php?page=' . $id . '">delete</a>';
}

https://doc.nette.org/…thentication

Zkrátka něco, co by automaticky nastavilo všechny odkazy (dělám je pomocí maker) – <a n:href="Presenter:akce"> , na které uživatel nemá právo, jako schované.

Stačí nakopnout, pak už poběžím sám :-)

Díky!

pavelmlejnek
Člen | 16
+
0
-

Časem by mělo být k dispozici n:if-allowed, zatím si na to musíš napsat vlastní makro (podívej se třeba sem)

Pudlík
Člen | 8
+
0
-

pavelmlejnek napsal(a):

Časem by mělo být k dispozici n:if-allowed, zatím si na to musíš napsat vlastní makro (podívej se třeba sem)

Tak díky, aspoň tak. A na to makro se moc těším, to by bylo super!