Více autorizátorů (authorizators)?
- flamengo
- Člen | 135
Příklad je následující: mám rozdělenou aplikaci na moduly Admin a Front.
Pro každý modul mám jiný způsob přihlašování, mám tedy AdminAuthenticator a FrontAuthenticator, které použiji nějak takto:
config.neon
services:
adminAuthenticator:
class: App\AdminModule\Security\AdminAuthenticator
autowired: no
frontAuthenticator:
class: App\FrontModule\Security\FrontAuthenticator
autowired: no
SecuredPresenter.php (v admin modulu)
public function checkRequirements($element){
$this->getUser()->getStorage()->setNamespace('admin');
$authenticator = new AdminAuthenticator($this->usersModel, $this->translator);
$this->getUser()->setAuthenticator($authenticator);
parent::checkRequirements($element);
}
Dotaz zní, jakým způsobem mám udělat ACL (statické).
Mám vytvořit dvoje ACL, každé pro jeden modul?
Lze takové dvoje ACL nějak nastavit rovnou v config.neon nebo budu muset
použít
$this->getUser()->setAuthorizator($authorizator);
?
Předem díky za názory.
- flamengo
- Člen | 135
Já to nakonec hodně zjednodušil a vytvořil autorizátor pouze pro modul
Admin, kde to potřebuji. V modulu Front si zatím vystačím s kontrolou
přihlášen/nepřihlášen, což provádím jednoduše v presenteru metodou
$this->getUser()->isLoggedIn()
. Zabývat se tím budu, až
bude opravdu potřeba :)
Nicméně odpověď na můj dotaz by mne i tak zajímala.
A ta knihovna by mě vlastně taky zajímala :)
Dotáhnout společně? Hehe, děkuji za projevenou důvěru, ale jsme v Nette a vůbec OOP začátečník a hodně principů je pro mne hotová magie. Takže zde bohužel nemůžu sloužit ;)
Editoval flamengo (21. 6. 2016 15:35)
- enumag
- Člen | 2118
Ta knihovna je hotová, používám jí už víc než rok, potřebuju jen názor jestli je api ok, případné nápady na vylepšení a dopsat dokumentaci. Je to silně inspirované Nette\Security a i to používá některé části jako Permission nebo UserStorage. V podstatě potřebuju spíše feedback než abyste na tom pracovali.
Hodil jsem to na GH: https://github.com/…hne/Security
Hlavní features oproti Nette/Security:
- identita v autorizátoru (viz mé staré RFC)
- možnost oddělených namespaců (samostatní uživatelé pro frontend a pro backend)
- možnost řešení problému že uživateli se nezruší session pokud se změní oprávnění (viz staré vlákno) – v nette totiž uživatel zůstane přihlášen i poté co mu admin účet smaže (a není to považováno za bug)
Editoval enumag (21. 6. 2016 17:02)
- enumag
- Člen | 2118
Ještě jsem do předchozího příspěvku přidal hlavní features…
@Barvoj Feedback asi raději na github nebo mejlem, tady jsme trochu off-topic.
@flamengo Nějaké rozumné řešení v rámci Nette\Security ti bohužel neporadím. Tu knihovnu jsem psal v podstatě právě proto že jsem kloudné řešení nevymyslel.
Editoval enumag (21. 6. 2016 17:03)