Sha256: 02d9a4c5e0c378a70374339510fcf0c631edf0a1280301e9f7e33ed319892081

Contents?: true

Size: 1.03 KB

Versions: 7

Compression:

Stored size: 1.03 KB

Contents

module MnoEnterprise
  class ImpersonateController < ApplicationController
    include MnoEnterprise::ImpersonateHelper

    before_filter :authenticate_user!, except: [:destroy]
    before_filter :current_user_must_be_admin!, except: [:destroy]

    # Perform the user impersonate action
    # GET /impersonate/user/123
    def create
      @user = MnoEnterprise::User.find(params[:user_id])
      if @user.present?
        impersonate(@user)
      else
        flash[:notice] = "User doesn't exist"
      end
      redirect_to mnoe_home_path
    end

    # Revert the user impersonation
    # GET /impersonation/revert
    def destroy
      if current_impersonator
        # user = current_user
        revert_impersonate
      end
      redirect_to '/admin/'
    end

    private

    def current_user_must_be_admin!
      unless current_user.admin_role.present?
        flash[:error] = "You don't have access to this section."
        redirect_to :back
      end
    rescue ActionController::RedirectBackError
      redirect_to '/'
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
mno-enterprise-api-3.1.1 app/controllers/mno_enterprise/impersonate_controller.rb
mno-enterprise-api-3.0.4 app/controllers/mno_enterprise/impersonate_controller.rb
mno-enterprise-api-3.1.0 app/controllers/mno_enterprise/impersonate_controller.rb
mno-enterprise-api-3.0.3 app/controllers/mno_enterprise/impersonate_controller.rb
mno-enterprise-api-3.0.2 app/controllers/mno_enterprise/impersonate_controller.rb
mno-enterprise-api-3.0.1 app/controllers/mno_enterprise/impersonate_controller.rb
mno-enterprise-api-3.0.0 app/controllers/mno_enterprise/impersonate_controller.rb