Dinamicke role v Identity
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- duskohu
- Člen | 778
Caute snazim sa dinamicky menit role v Identity pri kazdom requeste. problem
je v tom ze po kazdom requeste mi v poli roles
3 nasobne
zduplikuje pridanu rolu, ako by sa ta sluzba spustala 3×, ale ked mam dump
v konstruktore tak sa spusti len raz. Neviete poradit v com bude hacik? Na
sluzbe je tag run, aby sa spustala utomaticky. Popripade ako sa spravne
dinamicky menia role v Identity pomocou nejakej service.
extension
public function loadConfiguration() {
$builder = $this->getContainerBuilder();
// IdentityProcessor
$builder->addDefinition($this->prefix('identityProcessor'))
->setClass(IdentityProcessor::class)
->addTag('run');
}
service
namespace Nas\UserModule\DI;
use Arachne\Security\Authentication\FirewallInterface;
use Nette\Security\Identity;
class IdentityProcessor {
/** @var FirewallInterface */
private $firewall;
/**
* @param FirewallInterface $firewall
*/
public function __construct(FirewallInterface $firewall) {
$this->firewall = $firewall;
$testRole = 'testx';
/** @var Identity $identity */
$identity = $this->firewall->getIdentity();
$roles = $identity->getRoles();
$roles[] = $testRole;
$identity->setRoles($roles);
}
}
Editoval duskohu (16. 11. 2017 17:13)