diff --git a/Controller/ActivityController.php b/Controller/ActivityController.php index a312bd480..80007f415 100644 --- a/Controller/ActivityController.php +++ b/Controller/ActivityController.php @@ -22,6 +22,8 @@ namespace Chill\ActivityBundle\Controller; +use Chill\PersonBundle\Privacy\PrivacyEvent; +use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\Form\Extension\Core\Type\SubmitType; @@ -37,7 +39,22 @@ use Chill\ActivityBundle\Form\ActivityType; */ class ActivityController extends Controller { - + + /** + * @var EventDispatcherInterface + */ + protected $eventDispatcher; + + /** + * ActivityController constructor. + * + * @param EventDispatcherInterface $eventDispatcher + */ + public function __construct(EventDispatcherInterface $eventDispatcher) + { + $this->eventDispatcher = $eventDispatcher; + } + /** * Lists all Activity entities. * @@ -62,8 +79,13 @@ class ActivityController extends Controller array('person' => $person, 'scope' => $reachableScopes), array('date' => 'DESC') ); - - + + $event = new PrivacyEvent($person, array( + 'element_class' => Activity::class, + 'action' => 'list' + )); + $this->eventDispatcher->dispatch(PrivacyEvent::PERSON_PRIVACY_EVENT, $event); + return $this->render('ChillActivityBundle:Activity:list.html.twig', array( 'activities' => $activities, 'person' => $person @@ -201,7 +223,14 @@ class ActivityController extends Controller $this->denyAccessUnlessGranted('CHILL_ACTIVITY_SEE', $entity); $deleteForm = $this->createDeleteForm($id, $person); - + + $event = new PrivacyEvent($person, array( + 'element_class' => Activity::class, + 'element_id' => intval($id), + 'action' => 'show' + )); + $this->eventDispatcher->dispatch(PrivacyEvent::PERSON_PRIVACY_EVENT, $event); + return $this->render('ChillActivityBundle:Activity:show.html.twig', array( 'person' => $person, 'entity' => $entity, diff --git a/DependencyInjection/ChillActivityExtension.php b/DependencyInjection/ChillActivityExtension.php index ab0059155..0a5144a17 100644 --- a/DependencyInjection/ChillActivityExtension.php +++ b/DependencyInjection/ChillActivityExtension.php @@ -53,6 +53,7 @@ class ChillActivityExtension extends Extension implements PrependExtensionInterf $loader->load('services/repositories.yml'); $loader->load('services/fixtures.yml'); $loader->load('services/menu.yml'); + $loader->load('services/controller.yml'); } public function prepend(ContainerBuilder $container) diff --git a/Resources/config/services/controller.yml b/Resources/config/services/controller.yml new file mode 100644 index 000000000..075c52679 --- /dev/null +++ b/Resources/config/services/controller.yml @@ -0,0 +1,5 @@ +services: + Chill\ActivityBundle\Controller\ActivityController: + arguments: + $eventDispatcher: '@Symfony\Component\EventDispatcher\EventDispatcherInterface' + tags: ['controller.service_arguments']