Sha256: 539cc7f6b3a660c7130b4617a927de5b860a9177788b505033ff1fa57a66fe89

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

class Devise::MasqueradesController < DeviseController
  prepend_before_filter :authenticate_scope!

  before_filter :save_masquerade_owner_session, :only => :show

  def show
    self.resource = resource_class.to_adapter.find_first(:id => params[:id])

    redirect_to(new_user_session_path) and return unless self.resource

    self.resource.masquerade!

    redirect_to("#{after_masquerade_path_for(self.resource)}?#{after_masquerade_param_for(resource)}")
  end

  def back
    owner_user = resource_class.to_adapter.find_first(:id => session[session_key])

    session[session_key] = nil

    sign_in owner_user

    redirect_to '/'
  end

  private

  def authenticate_scope!
    send(:"authenticate_#{resource_name}!", :force => true)
  end

  def after_masquerade_path_for(resource)
    "/"
  end

  def after_masquerade_param_for(resource)
    "#{Devise.masquerade_param}=#{resource.masquerade_key}"
  end

  def save_masquerade_owner_session
    session[session_key] = send("current_#{resource_name}").id
  end

  def session_key
    "devise.masquerade.#{resource_name}"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
devise_masquerade-0.0.4 app/controllers/devise/masquerades_controller.rb