Autorizace ve vztahu k navigaci a obsahu stranek

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

Ahoj, jak resite aby se uzivateli nezobrazovaly odkazy na akce, ktere ma na zaklade autorizace zakazane? Autorizaci pristupu ted resim normalne pres ACL ve startup akci base presenteru.

Napadlo me zatim jen osetrit to v sablone, kdy u kazdeho odkazu nebo casti stranky ktera neni pro kazdeho by byla take podminka pro overeni autorizace na zaklade ktere by se zobrazil nebo nezobrazil odkaz/obsah. To je ale trochu slozite. Autorizace pro konkretni akci by se tak vlastne overovala dvakrat, jednou na strance s odkazem na akci a podruhe pri pristupu k akci.

Diky za podnety.

Nox
Člen | 378
+
0
-

Při tomto požadavku se ověřovat IMHO dvakrát bude vždy, protože uživatel tu adresu může někde vidět a zadat ji třeba ručně atd.

Vladik_hk
Člen | 50
+
0
-

Jasne, jde teda o to, jestli je to bezne reseni. Jestli treba nekdo nema pro ruzne uzivatele ruzne sablony apod. To je jen priklad, v praxi by to bylo zrejme nevhodne reseni.

Vladik_hk
Člen | 50
+
0
-

Jde mi teda o best practise, jestli to co jsem napsal v prvnim prispevku je nejlepsi cesta.

Vyki
Člen | 388
+
0
-

Ve verzi 1.0 bude v šabloně makro jěco jako if-allowed

<a n:if-allowed="delete" n:href="Front:delete">Smazat</a>

ale kdo ví kdy se na to dostane řada, respektive kdy se dostane opět na něco kromě Nette\Database.

Do té doby to budeš muset podmiňovat např. klasickým

{if $user->isAllowed('delete')}<a n:href="Front:delete">Smazat</a>{/if} nebo

<a n:if="$user->isAllowed('delete')" n:href="Front:delete">Smazat</a>

Editoval Vyki (16. 1. 2011 13:04)

Vladik_hk
Člen | 50
+
0
-

Diky!

Patrik Votoček
Člen | 2221
+
0
-

Vyki napsal(a):

Ve verzi 1.0 bude v šabloně makro jěco jako if-allowed

<a n:if-allowed="delete" n:href="Front:delete">Smazat</a>

2.0 :-) a mělo by to být:

<a n:href="Front:delete id => 1" n:if-allowed>Smazat</a>
Aurielle
Člen | 1281
+
0
-

Zkusil jsem to implementovat. Není to moc čisté (v podstatě nedefinuji nové makro if-allowed, ale jen ho převádím na if), ale funguje to :))