autorizacia v presenteroch a sablonach

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

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
+
0
-

Ř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
+
0
-

dakujem. magiu do toho tahat nechcem, ide mi skor o rozsireny Permision::isAllowed() len nerad vymyslam koleso…

MartinitCZ
Člen | 580
+
0
-

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
+
0
-

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

enumag
Člen | 2118
+
0
-

@DavidKudera: Ne, použitelné to není. https://forum.nette.org/…r-a-identita

Jan Tvrdík
Nette guru | 2595
+
+2
-

@japlavaren Já to řeším tak, že nešikovnou implementaci, které je teď v Nette, prostě nepoužívám.

japlavaren
Člen | 404
+
0
-

@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

japlavaren
Člen | 404
+
0
-

tak nejak podobne ohybam i ja isAllowed

enumag
Člen | 2118
+
0
-

@japlavaren RFC bylo zamítnuto takže jsem si jej přepracoval do podoby extension.

David Kudera
Člen | 455
+
0
-

@enumag Ok, díky :-)