From a629d9b0243b6d11897c8d98995ab9c1626faa85 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 26 Feb 2020 07:57:02 +0000 Subject: [PATCH] Add entity listener for user. #330 --- config/cmb.services.yaml | 8 ++ config/resq.services.yaml | 7 ++ config/services.yaml | 8 ++ src/EventListener/EntityListener.php | 32 +++++++ .../EntityListener/UserEntityListener.php | 87 +++++++++++++++++++ 5 files changed, 142 insertions(+) create mode 100644 src/EventListener/EntityListener.php create mode 100644 src/EventListener/EntityListener/UserEntityListener.php diff --git a/config/cmb.services.yaml b/config/cmb.services.yaml index 3ec1e341..eb691569 100644 --- a/config/cmb.services.yaml +++ b/config/cmb.services.yaml @@ -238,3 +238,11 @@ services: - name: 'doctrine.orm.entity_listener' event: 'postPersist' entity: 'App\Entity\JobOrder' + + App\EventListener\EntityListener\UserEntityListener: + tags: + - name: 'doctrine.orm.entity_listener' + event: 'postPersist' + entity: 'App\Entity\User' + - name: 'doctrine.event_listener' + event: 'onFlush' diff --git a/config/resq.services.yaml b/config/resq.services.yaml index a8143011..76948088 100644 --- a/config/resq.services.yaml +++ b/config/resq.services.yaml @@ -238,3 +238,10 @@ services: event: 'postPersist' entity: 'App\Entity\JobOrder' + App\EventListener\EntityListener\UserEntityListener: + tags: + - name: 'doctrine.orm.entity_listener' + event: 'postPersist' + entity: 'App\Entity\User' + - name: 'doctrine.event_listener' + event: 'onFlush' diff --git a/config/services.yaml b/config/services.yaml index 01465e88..e2e43641 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -258,3 +258,11 @@ services: - name: 'doctrine.orm.entity_listener' event: 'postPersist' entity: 'App\Entity\JobOrder' + + App\EventListener\EntityListener\UserEntityListener: + tags: + - name: 'doctrine.orm.entity_listener' + event: 'postPersist' + entity: 'App\Entity\User' + - name: 'doctrine.event_listener' + event: 'onFlush' diff --git a/src/EventListener/EntityListener.php b/src/EventListener/EntityListener.php new file mode 100644 index 00000000..21711669 --- /dev/null +++ b/src/EventListener/EntityListener.php @@ -0,0 +1,32 @@ +getID() . ' and username ' . $user->getUsername()); + } + + public function onFlush(OnFlushEventArgs $args) + { + $em = $args->getEntityManager(); + $unit_of_work = $em->getUnitOfWork(); + $deleted_entities = $unit_of_work->getScheduledEntityDeletions(); + $updated_entities = $unit_of_work->getScheduledEntityUpdates(); + + foreach ($updated_entities as $updated_entity) + { + if ($updated_entity instanceof User) + { + $changeset = $unit_of_work->getEntityChangeSet($updated_entity); + + $entity_fields = array_keys($changeset); + foreach ($entity_fields as $field) + { + error_log('field ' . $field); + + $values = $changeset[$field]; + + $old_value = $values[0]; + $new_value = $values[1]; + + error_log('Changed ' . $field . ' from ' . $old_value . ' to ' . $new_value); + } + } + } + + foreach ($deleted_entities as $deleted_entity) + { + if ($deleted_entity instanceof User) + { + $deleted_id = $deleted_entity->getID(); + $deleted_username = $deleted_entity->getUsername(); + + error_log('Deleted user with id ' . $deleted_id . ' and username ' . $deleted_username); + } + } + } + + /* + public function postUpdate($user, LifecycleEventArgs $args) + { + error_log ('POST UPDATE'); + + error_log('User with id ' . $user->getID() . ' updated.'); + error_log('username ' . $user->getUsername()); + error_log('password ' . $user->getPassword()); + error_log('first name ' . $user->getFirstName()); + error_log('last name ' . $user->getLastName()); + error_log('contact number '. $user->getContactNumber()); + error_log('email ' . $user->getEmail()); + + $roles = $user->getRoles(); + $hubs = $user->getHubs(); + + foreach ($roles as $role) + error_log('user role ' . $role); + + foreach ($hubs as $hub) + error_log('user hub ' . $hub); + } */ + + /* + public function postRemove($user, LifecycleEventArgs $args) + { + error_log('User deleted.'); + } */ +}