Skip to content

Commit 2d21118

Browse files
committed
RoleUpdateLogger: use repository find instead of merge to get attached entities
1 parent fd6b2be commit 2d21118

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

app/Listeners/RoleUpdateLogger.php

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
use HMS\Entities\Role;
66
use HMS\Entities\RoleUpdate;
7+
use HMS\Repositories\RoleRepository;
8+
use HMS\Repositories\UserRepository;
79
use App\Events\Roles\UserAddedToRole;
810
use Doctrine\ORM\EntityManagerInterface;
911
use Illuminate\Queue\InteractsWithQueue;
@@ -25,15 +27,27 @@ class RoleUpdateLogger implements ShouldQueue
2527
*/
2628
protected $entityManager;
2729

30+
/**
31+
* @var UserRepository
32+
*/
33+
protected $userRepository;
34+
35+
/**
36+
* @var RoleRepository
37+
*/
38+
protected $roleRepository;
39+
2840
/**
2941
* Create the event listener.
3042
*
3143
* @param RoleUpdateRepository $roleUpdateRepository
3244
*/
33-
public function __construct(RoleUpdateRepository $roleUpdateRepository, EntityManagerInterface $entityManager)
45+
public function __construct(RoleUpdateRepository $roleUpdateRepository, EntityManagerInterface $entityManager, UserRepository $userRepository, RoleRepository $roleRepository)
3446
{
3547
$this->roleUpdateRepository = $roleUpdateRepository;
3648
$this->entityManager = $entityManager;
49+
$this->userRepository = $userRepository;
50+
$this->roleRepository = $roleRepository;
3751
}
3852

3953
/**
@@ -47,8 +61,8 @@ public function onUserAddedToRole(UserAddedToRole $event)
4761
return;
4862
}
4963

50-
$user = $this->entityManager->merge($event->user);
51-
$role = $this->entityManager->merge($event->role);
64+
$user = $this->userRepository->find($event->user->getId());
65+
$role = $this->roleRepository->find($event->role->getId());
5266
$roleUpdate = new RoleUpdate($user, $role);
5367
$this->roleUpdateRepository->save($roleUpdate);
5468
}
@@ -60,8 +74,8 @@ public function onUserAddedToRole(UserAddedToRole $event)
6074
*/
6175
public function onUserRemovedFromRole(UserRemovedFromRole $event)
6276
{
63-
$user = $this->entityManager->merge($event->user);
64-
$role = $this->entityManager->merge($event->role);
77+
$user = $this->userRepository->find($event->user->getId());
78+
$role = $this->roleRepository->find($event->role->getId());
6579
$roleUpdate = new RoleUpdate($user, null, $role);
6680
$this->roleUpdateRepository->save($roleUpdate);
6781
}

0 commit comments

Comments
 (0)