skill-assessment-app/app/controllers/admin_controller.rb
2017-03-06 13:35:02 -06:00

40 lines
971 B
Ruby

# frozen_string_literal: true
class AdminController < ApplicationController
include Pundit
layout 'admin'
before_action :authorize_user
rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized
after_action :verify_authorized, except: :index
after_action :verify_policy_scoped, only: :index
helper_method :sort_direction
helper_method :sort_column
def current_user
@current_user ||= User.find_by(id: session[:user]) if session[:user]
end
helper_method :current_user
private
def sort_column
:completed_at
end
def sort_direction
%w(asc desc).include?(params[:direction]) ? params[:direction] : 'asc'
end
def authorize_user
session[:request] = request.fullpath
redirect_to admin_login_path unless current_user
end
def user_not_authorized
flash[:error] = "You are not authorized to perform this action."
redirect_to(request.referer || admin_login_path)
end
end