Add username of user to log. #330

This commit is contained in:
Korina Cordero 2020-02-28 08:40:44 +00:00
parent 4c27b4da06
commit 987097ff6a
5 changed files with 86 additions and 4 deletions

View file

@ -240,6 +240,8 @@ services:
entity: 'App\Entity\JobOrder'
App\EventListener\EntityListener\UserEntityListener:
arguments:
["@security.token_storage"]
tags:
- name: 'doctrine.orm.entity_listener'
event: 'postPersist'

View file

@ -239,6 +239,8 @@ services:
entity: 'App\Entity\JobOrder'
App\EventListener\EntityListener\UserEntityListener:
arguments:
["@security.token_storage"]
tags:
- name: 'doctrine.orm.entity_listener'
event: 'postPersist'

View file

@ -260,6 +260,8 @@ services:
entity: 'App\Entity\JobOrder'
App\EventListener\EntityListener\UserEntityListener:
arguments:
["@security.token_storage"]
tags:
- name: 'doctrine.orm.entity_listener'
event: 'postPersist'

View file

@ -2,6 +2,8 @@
namespace App\EventListener;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\OnFlushEventArgs;
@ -9,17 +11,35 @@ use DateTime;
abstract class EntityListener
{
protected $token_storage;
public function __construct(TokenStorage $token_storage)
{
$this->token_storage = $token_storage;
}
public function postPersist($object, LifecycleEventArgs $args)
{
error_log('Created object');
$event_time = new DateTime();
$log_time = $event_time->format('Y-m-d H:i:s');
// get user for logging
$user = $this->token_storage->getToken()->getUser();
$username = $user->getUsername();
error_log($log_time . ' - ' . $username . ' - Created object');
}
public function onFlush(OnFlushEventArgs $args)
{
// get date time of event for logging
$event_time = new DateTime();
$log_time = $event_time->format('Y-m-d H:i:s');
// get user for logging
$user = $this->token_storage->getToken()->getUser();
$username = $user->getUsername();
$em = $args->getEntityManager();
$unit_of_work = $em->getUnitOfWork();
$deleted_entities = $unit_of_work->getScheduledEntityDeletions();
@ -27,6 +47,7 @@ abstract class EntityListener
$updated_collections = $unit_of_work->getScheduledCollectionUpdates();
$deleted_collections = $unit_of_work->getScheduledCollectionDeletions();
// get updated fields. This doesn't include lists of other entities.
foreach ($updated_entities as $updated_entity)
{
$changeset = $unit_of_work->getEntityChangeSet($updated_entity);
@ -39,17 +60,56 @@ abstract class EntityListener
$old_value = $values[0];
$new_value = $values[1];
error_log($log_time . ' - Changed ' . $field . ' from ' . $old_value . ' to ' . $new_value);
error_log($log_time . ' - ' . $username . ' - Changed ' . $field . ' from ' . $old_value . ' to ' . $new_value);
}
}
// get deleted objects
foreach ($deleted_entities as $deleted_entity)
{
$deleted_id = $deleted_entity->getID();
error_log($log_time . ' - Deleted object with id ' . $deleted_id);
error_log($log_time . ' - ' . $username . ' - Deleted object with id ' . $deleted_id);
}
// TODO: find a way to get the list of "old" items, compare with list of updated items
// so we can find out what was added/removed
/*
foreach ($updated_collections as $updated_collection)
{
error_log('in updated_collection snippet');
foreach ($updated_collection as $item)
{
if ($item instanceof Role)
{
error_log('updated_collection item ' . $item->getName());
}
if ($item instanceof Hub)
{
error_log('updated_collection item ' . $item->getName());
}
}
}
foreach ($deleted_collections as $deleted_collection)
{
error_log('in deleted_collection snippet');
foreach ($deleted_collection as $item)
{
if ($item instanceof Role)
{
error_log('deleted_collection item ' . $item->getName());
}
if ($item instanceof Hub)
{
error_log('deleted_collection item ' . $item->getName());
}
}
} */
}
/*

View file

@ -2,6 +2,8 @@
namespace App\EventListener\EntityListener;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\OnFlushEventArgs;
@ -15,11 +17,25 @@ use DateTime;
class UserEntityListener extends EntityListener
{
protected $token_storage;
public function __construct(TokenStorage $token_storage)
{
$this->token_storage = $token_storage;
parent::__construct($token_storage);
}
public function postPersist($user, LifecycleEventArgs $args)
{
$event_time = new DateTime();
$log_time = $event_time->format('Y-m-d H:i:s');
error_log($log_time . ' - Created user with id ' . $user->getID() . ' and username ' . $user->getUsername());
// get user for logging
$user = $this->token_storage->getToken()->getUser();
$username = $user->getUsername();
error_log($log_time . ' - ' . $username . ' - Created user with id ' . $user->getID() . ' and username ' . $user->getUsername());
}
//public function onFlush(OnFlushEventArgs $args)