Ověřování oprávnění až na základě uživatelů v Authorizatoru

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

Ahoj všem,
zajímalo by mě, jestli se přímo v Authorizatoru dá ověřovat oprávnění až na úrovni uživatelů? Každý uživatel má v DB sloupec s názvem „rights“, ve kterém je klasicky uložené číslo binárním sčítáním práv. Chtěl bych mít něco podobného:

<?php

use Nette\Security\Permission;

class Authorizator extends Nette\Object implements Nette\Security\IAuthorizator {
	private $acl;

	...

	public function isAllowed($role, $presenter, $action) {
		$userData = $this->getUser()->getIdentity()->getData();

		return ($userData["rights"] & $requestedRight) == $requestedRight;
	}
}
?>

Přičemž v $requestedRight je přirozená mocnina 2 nějakého oprávnění.

Jde to nějak?

Díky za odpovědi.

enumag
Člen | 2118
+
0
-

Už je to tu zase, autorizátor by potřeboval celou identitu (viz mé RFC).

eldest
Člen | 58
+
0
-

Aha, takže nejlepším bude jako blb v každém presenteru napsat?

<?php
if($userRights & XX == XX)
?>

Editoval eldest (22. 10. 2013 13:48)

enumag
Člen | 2118
+
0
-

Mám to RFC implementované jako extension, jestli ho chceš vyzkoušet, napiš mi e-mail.

Anebo se to dá takhle hnusně hacknout (což jsem v RFC také uváděl).