Skip to content

Commit e05fded

Browse files
committed
Possibility to exclude specific route to the system
1 parent 6ff33d4 commit e05fded

File tree

3 files changed

+23
-3
lines changed

3 files changed

+23
-3
lines changed

DependencyInjection/Configuration.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ public function getConfigTreeBuilder()
1313

1414
$treeBuilder->getRootNode()
1515
->children()
16-
->arrayNode('exclude_route')->end()
16+
->arrayNode('exclude_route')
17+
->scalarPrototype()->end()
18+
->end()
1719
->end()
1820
;
1921

EventSubscriber/UserStatsSubscriber.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use DateTime;
77
use Doctrine\ORM\EntityManagerInterface;
88
use FluffyFactory\Bundle\UserStatsBundle\Entity\UserStatsLines;
9+
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
910
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
1011
use Symfony\Component\HttpKernel\Event\RequestEvent;
1112
use Symfony\Component\Security\Core\Security;
@@ -14,11 +15,13 @@ class UserStatsSubscriber implements EventSubscriberInterface
1415
{
1516
private $security;
1617
private $em;
18+
private $containerBag;
1719

18-
public function __construct(Security $security, EntityManagerInterface $em)
20+
public function __construct(Security $security, EntityManagerInterface $em, ContainerBagInterface $containerBag)
1921
{
2022
$this->security = $security;
2123
$this->em = $em;
24+
$this->containerBag = $containerBag;
2225
}
2326

2427
/**
@@ -39,8 +42,16 @@ public function onKernelRequest(RequestEvent $event)
3942
{
4043
/** @var User $user */
4144
$user = $this->security->getUser();
45+
$route = $event->getRequest()->get('_route');
46+
47+
if ($user && $route) {
48+
49+
$excludeRoute = $this->containerBag->get('fluffy_user_stats')['exclude_route'];
50+
51+
if ($excludeRoute && in_array($route, $excludeRoute)) {
52+
return;
53+
}
4254

43-
if ($user && $event->getRequest()->get('_route')) {
4455
$user->setLastVisited(new DateTime());
4556
$user->setNbPageViews($user->getNbPageViews() + 1);
4657

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ composer require fluffy-factory/user-stats-bundle
1717

1818
## Configuration
1919

20+
You can create your own configuration in `config/packages/fluffy_user_stats.yaml`:
21+
22+
```yaml
23+
user_stats:
24+
exclude_route: ['homepage', 'contact']
25+
```
26+
2027
### Entity
2128
2229
Add mixin Class `use UserStats` in your User entity

0 commit comments

Comments
 (0)