Sha256: 79c06419af79e6098c0fe1987d012f3312a28395eb87473f32de5857cda91a51

Contents?: true

Size: 567 Bytes

Versions: 2

Compression:

Stored size: 567 Bytes

Contents

module Martinet
  module Impersonation
    def impersonate!(user, impersonator_scope: nil)
      impersonator = current_user(scope: impersonator_scope)
      sign_in!(impersonator, scope: :impersonator)
      sign_in!(user)
    end

    def impersonating?
      signed_in?(scope: :impersonator)
    end

    def unmask!
      impersonator = current_user(scope: :impersonator)
      sign_out!
      sign_in!(impersonator)
    end
  end
end

if Martinet.configuration.enable_impersonation
  Martinet::Session.class_eval do
    include Martinet::Impersonation
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
martinet-0.1.1 lib/martinet/impersonation.rb
martinet-0.1.0 lib/martinet/impersonation.rb