34 lines
684 B
Ruby
34 lines
684 B
Ruby
class Admin::MasqueradesController < Admin::ApplicationController
|
|
before_action :set_user, only: [:create]
|
|
skip_before_action :require_admin_login, only: [:destroy]
|
|
|
|
def create
|
|
authorize :masquerade, :create?
|
|
session[:admin_id] = current_user.id
|
|
sign_in @user
|
|
redirect_to signed_in_root_path
|
|
end
|
|
|
|
def destroy
|
|
authorize :masquerade, :destroy?
|
|
sign_in User.find session[:admin_id]
|
|
session.delete(:admin_id)
|
|
session.delete(:active_account)
|
|
redirect_to admin_users_path
|
|
end
|
|
|
|
private
|
|
|
|
def set_user
|
|
@user = find_user
|
|
end
|
|
|
|
def users
|
|
policy_scope User
|
|
end
|
|
|
|
def find_user
|
|
authorize users.find(params[:user_id])
|
|
end
|
|
end
|