summaryrefslogtreecommitdiff
path: root/app/controllers/admin/impersonations_controller.rb
blob: 6c45b03455ef9e7d6ef157c9b7010f37e7572747 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# frozen_string_literal: true

class Admin::ImpersonationsController < Admin::ApplicationController
  skip_before_action :authenticate_admin!
  before_action :authenticate_impersonator!

  feature_category :authentication_and_authorization

  def destroy
    original_user = stop_impersonation
    redirect_to admin_user_path(original_user), status: :found
  end

  private

  def authenticate_impersonator!
    render_404 unless impersonator && impersonator.admin? && !impersonator.blocked?
  end
end