Ako vlozit premennu do AuthoryzatorFactory
- vladimir.biro
- Člen | 163
Ahojte.
Prosim vas, mam toto:
class AuthorizatorFactory
{
/** @var Model\BundlesManager */
private $bundlesManager;
public function __construct(Model\BundlesManager $bundlesManager)
{
$this->bundlesManager = $bundlesManager;
}
/**
* @return Nette\Security\Permission
*/
public static function create()
{
$bundles = $this->bundlesManager->getBundles();
$acl = new Permission;
$acl->addRole('guest');
$acl->addRole('admin', 'guest');
$acl->addRole('superadmin');
$acl->addResource('Res1');
$acl->addResource('Res2');
// ...
/** HomePage */
$acl->allow('admin', 'Homepage');
/** SUPERADMINISTRATOR moze vsetko !! */
$acl->allow('superadmin', $acl::ALL, $acl::ALL);
return $acl;
}
}
No troskota to tu:
$bundles = $this->bundlesManager->getBundles();
koli tomu this.
Problem vznika tym, ze ide o staticku metodu.
Cize otazka: Ako dostanem tie premenne do statickej metody
Alternativna otazka: Ako ten authenticator rozbeham, ak z toho spravim
nestaticku metodu.
Dakujem za kazdu radu.
Editoval vladimir.biro (24. 11. 2017 23:59)
- vladimir.biro
- Člen | 163
CZechBoY napsal(a):
Uděláš z něj normál službu a přistoupíš přes klasickou instanční metodu.
Nevim jestli to používáš v konfiguráku, ale jestli jo tak třeba takhleservices: - App\AuthorizatorFactory authorizator: @App\AuthorizatorFactory::create
Super, teraz mi to uz ide aj bez statickej metody :)
Tak a teraz … dalo by sa toto authorizator:
@App\AuthorizatorFactory::create pozut napriklad v BasePresenteri?
Potrebujem mat v tej chvili uz ponastavovane nejake settery.
- vladimir.biro
- Člen | 163
CZechBoY napsal(a):
Settery? Jestli to je zas něco od uživatele tak už by asi stálo za to vytáhnout to někam ven do služby…
Na zaklade prihlaseneho uzivatela sa urcuje ktoremu projektu pratri a podla
toho sa nastavuje aj authorizator.
A ten projekt sa nastavuje v BasePresenteri v startup() { … }