<?php
namespace App\Subscriber;
use App\Entity\User;
use App\EntityManager\ForumAccessManager;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\Security\Http\SecurityEvents;
class OnLoginSubscriber implements EventSubscriberInterface
{
protected $forumAccessManager;
public function __construct(ForumAccessManager $forumAccessManager)
{
$this->forumAccessManager = $forumAccessManager;
}
public static function getSubscribedEvents()
{
return array(
SecurityEvents::INTERACTIVE_LOGIN => 'onSecurityInteractiveLogin'
);
}
public function onSecurityInteractiveLogin(InteractiveLoginEvent $event)
{
$user = $event->getAuthenticationToken()->getUser();
if (!$user instanceof User) {
return;
}
$this->forumAccessManager->setAccessInUserSession($user);
}
}