From 13333ed54a8c4f3665459db2de5e1c1fe17df820 Mon Sep 17 00:00:00 2001 From: Mat Date: Tue, 16 Oct 2018 10:02:26 +0200 Subject: [PATCH 1/4] privacyEvent, add event to activity list and show actions --- Controller/ActivityController.php | 37 +++++++++++++++++-- .../ChillActivityExtension.php | 1 + Resources/config/services/controller.yml | 5 +++ 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 Resources/config/services/controller.yml 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'] From b6ab04f3e31fa6a2e09fd4639507f8c22f0c5dbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Fri, 19 Oct 2018 12:36:59 +0200 Subject: [PATCH 2/4] add privacy event to edit, update actions --- Controller/ActivityController.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Controller/ActivityController.php b/Controller/ActivityController.php index 80007f415..54f50c4af 100644 --- a/Controller/ActivityController.php +++ b/Controller/ActivityController.php @@ -28,7 +28,6 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Security\Core\Role\Role; - use Chill\ActivityBundle\Entity\Activity; use Chill\PersonBundle\Entity\Person; use Chill\ActivityBundle\Form\ActivityType; @@ -226,7 +225,7 @@ class ActivityController extends Controller $event = new PrivacyEvent($person, array( 'element_class' => Activity::class, - 'element_id' => intval($id), + 'element_id' => $entity->getId(), 'action' => 'show' )); $this->eventDispatcher->dispatch(PrivacyEvent::PERSON_PRIVACY_EVENT, $event); @@ -263,6 +262,13 @@ class ActivityController extends Controller $editForm = $this->createEditForm($entity); $deleteForm = $this->createDeleteForm($id, $person); + + $event = new PrivacyEvent($person, array( + 'element_class' => Activity::class, + 'element_id' => $entity->getId(), + 'action' => 'show' + )); + $this->eventDispatcher->dispatch(PrivacyEvent::PERSON_PRIVACY_EVENT, $event); return $this->render('ChillActivityBundle:Activity:edit.html.twig', array( 'entity' => $entity, @@ -314,6 +320,13 @@ class ActivityController extends Controller $deleteForm = $this->createDeleteForm($id, $person); $editForm = $this->createEditForm($entity); $editForm->handleRequest($request); + + $event = new PrivacyEvent($person, array( + 'element_class' => Activity::class, + 'element_id' => $entity->getId(), + 'action' => 'update' + )); + $this->eventDispatcher->dispatch(PrivacyEvent::PERSON_PRIVACY_EVENT, $event); if ($editForm->isValid()) { $em->flush(); From 5eff3f33d8c7efce731430b2d164e5475c44fb53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Fri, 19 Oct 2018 12:40:12 +0200 Subject: [PATCH 3/4] fix action description in privacy events logs --- Controller/ActivityController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Controller/ActivityController.php b/Controller/ActivityController.php index 54f50c4af..8e6c25e76 100644 --- a/Controller/ActivityController.php +++ b/Controller/ActivityController.php @@ -266,7 +266,7 @@ class ActivityController extends Controller $event = new PrivacyEvent($person, array( 'element_class' => Activity::class, 'element_id' => $entity->getId(), - 'action' => 'show' + 'action' => 'edit' )); $this->eventDispatcher->dispatch(PrivacyEvent::PERSON_PRIVACY_EVENT, $event); From adee1b67a2e471af25074ec86c3413fc831424d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Fri, 19 Oct 2018 12:42:28 +0200 Subject: [PATCH 4/4] add changelog for privacy events --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88a7e4351..a556edeba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,3 +4,8 @@ Version 1.5.1 - [report activity count] fix error: do not show centers which are not selected in results. +Branch privacyEvent +================== + +- add privacy events to activity list / show / edit +