Kontrola oprávnění příspěvku

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

Ahoj,

mám jen takovou otázku ohledně kontrolování oprávnění u příspěvku.

Jde mi o to, abych nemusel u každé akce kontrolovat, zda je uživatel vlastníkem příspěvku a zda může danou akci provést.

Napadlo mě nejprve kontrolovat v presenteru v beforeRender(), kde to sice funguje při náhledu na detail atd, ale poté jsem se koukl na životní cyklus presenteru a došlo mi, že např. při handleru mi to projde.. Potřeboval bych kontrolu někde mezi action<Action> a handle<Signal>

Jaké je best practice tohoto řešení ?

Editoval kleinpetr (24. 11. 2015 12:25)

vitkutny
Člen | 73
+
0
-

kontrolu oprávnění prováděj v checkRequirements, nebo startup (dle toho jak kontrolu provádíš, checkRequirements se volá několikrát [pro presenter, action a render metodu], startup jen jednou) . pokud potřebuješ aby se dostal na action ale dál už ne, tak můžeš přetížit metodu processSignal a před zavoláním parenta vyhodit forbiddenRequestException

kleinpetr
Člen | 480
+
0
-

Jop, udělal jsem to nakonec tak, že v rodičovskym presenteru jsem vytvořil fci

public function checkOwner($idOwner)
{
    if ($idOwner != $this->user->id) {
        throw new ForbiddenRequestException;
    }
}

I tak to sice volám ručně u akcí jako detail, remove, edit ale zase to ověření mám na jednom místě ;)