If a user has liked a post that has passed the
post_undo_action_window_mins system setting window and you transfer ownership
of that post to that user you will be the owner of a post that you have
liked, but cannot unlike resulting in a weird UI behavior. This commit
fixes this issue.
The existing tests didn’t check for the timeout window for unliking posts so I added that in.
I couldn’t find a good way to do this logic inside of the guardian class
so rather than duplicating behavior of the
inside of the
PostOwnerChanger I decided to pass in a “bypass”
variable that could be used to check if the calling class is the
‘post_owner_changer’ and bypass the guardian instead. I went this route
because the guardian
can_delete_post_action method has no way of
distinguishing how to allow a user to be able to unlike their own posts
after the timeout window but only on a post owner change.