44
55use HMS \Entities \Role ;
66use HMS \Entities \RoleUpdate ;
7+ use HMS \Repositories \RoleRepository ;
8+ use HMS \Repositories \UserRepository ;
79use App \Events \Roles \UserAddedToRole ;
810use Doctrine \ORM \EntityManagerInterface ;
911use 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