autorizacia v presenteroch a sablonach
- japlavaren
- Člen | 404
ahoj,
potrebujem riesit autorizaciu na urovni pesenteru i v sablonach, pricom potrebujem vlastne podmienky – aby uzivatel mohol upravovat iba svoje inzeraty, ale ostatne nie…
je pre nette taketo acl hotove? hladal som na fore (mozno som hladal zle) ale nic som nenasiel
dakujem
- MartinitCZ
- Člen | 580
Řešil bych to nějak takto:
public function actionEdit($id)
{
$item = $this->database->getTable('table_name')->where(array('id' => $id, 'user_id' => $this->user->id))->limit(1)->fetch();
if (!$item) {
$this->redirect('Homepage:default');
}
// ...
// ...
// ...
}
Není v tom žádná magie a řešíš to až na úrovní databáze.
Přihlášený uživatel se nikdy nedostane k inzerátu, který není jeho.
Můpžeš zkusit použít anotace a podobně, ale to už je magie.
Inspirace je zde.
Editoval MartinitCZ (26. 7. 2014 22:06)
- japlavaren
- Člen | 404
dakujem. magiu do toho tahat nechcem, ide mi skor o rozsireny Permision::isAllowed() len nerad vymyslam koleso…
- MartinitCZ
- Člen | 580
isAllowed() je omezení na celou akci. Tzv. zakážeš mu, zda může editovat, ale už nejde přesně říct jakou položku. Na to je potřeba příklad hore. ;)
- David Kudera
- Člen | 455
Ne tak docela. Sice starší příspěvek, ale hádám, že by to mělo být pořád použitelné. link
Ale jinak taky to řeším takhle podobně přes db většinou
- Jan Tvrdík
- Nette guru | 2595
@japlavaren Já to řeším tak, že nešikovnou implementaci, které je teď v Nette, prostě nepoužívám.
- japlavaren
- Člen | 404
@enumag aby is:allowed distavala IIdentity namiesto terajsieho role je dobry napad. v akom stave to teraz je. pouzivam (myslim) najnovise nette 2.2.2 a zatial to tam nieje