Currently, switching back from an impersonated user to ones original account does not work. That's due to the fact that the FOSUserBundle compares the original account's class to the impersonated user's class in its own UserProvider when refreshing a user.
Example
Assuming you have two user types UserBundle\Entity\UserOne and UserBundle\Entity\UserTwo. When impersonating another UserOne with a UserOne account, everything works as expected. However, when impersonating a UserTwo with a UserOne account, the comparison backfires.
Propsed fix
Add custom PUGX UserProviders that extend the FOS UserProviders and override the existing supportsClass functions. By comparing the parent class of both users, everything works as expected.
Currently, switching back from an impersonated user to ones original account does not work. That's due to the fact that the FOSUserBundle compares the original account's class to the impersonated user's class in its own UserProvider when refreshing a user.
Example
Assuming you have two user types
UserBundle\Entity\UserOne
andUserBundle\Entity\UserTwo
. When impersonating anotherUserOne
with aUserOne
account, everything works as expected. However, when impersonating aUserTwo
with aUserOne
account, the comparison backfires.Propsed fix
Add custom PUGX UserProviders that extend the FOS UserProviders and override the existing supportsClass functions. By comparing the parent class of both users, everything works as expected.