Fix infinite loop on saml login of a blocked user
What does this MR do and why?
When a blocked user tries to log in they are immediately signed out again.
This in turn calls the before_logout callback in Warden. In that
callback we try to log the activity for the blocked user in the
BlockedUserTracker:
https://gitlab.com/gitlab-org/gitlab/blob/e30d909d3f19511742d218da0b4bd2cecca8b7a2/config/initializers/warden.rb#L60
If a SystemHook was configured, this would also mean scheduling a
job. Scheduling a job tries to get the current user from the
context. For the OmniAuthCallbacksController this would call
current_user which would try to sign the user in again.
The OmniauthCallbacksController is an ApplicationController, which has
a #context_user method that uses #auth_user which also exposes
#current_user, but it has a safeguard to not call current user
multiple times.
Fixes #344127 (closed)
Related !63303 (merged)