skill-assessment-app/app/controllers/admin/result_controller.rb
Mark Moser 255e430abd limit quiz and results scopes to current_user access
now managers and reviewers can only see quizzes and completed results for those quizzes they have been assigned to.
2017-05-03 16:25:32 -05:00

39 lines
1.3 KiB
Ruby

# frozen_string_literal: true
module Admin
class ResultController < AdminController
# TODO: change context from Candidate to Quiz
# bypass pundit lockdowns until completed
after_action :skip_policy_scope
after_action :skip_authorization
#
# TODO: Limit results to the quizzes current_user has access to
def index
sort_case = "(case when review_status = 0 then '' else name end)"
sort_with_case = sort_column == 'name' ? sort_case : sort_column
@candidates = current_user.reviewees.where(completed: true)
.includes(:recruiter)
.order("#{sort_with_case} #{sort_direction}")
.page(params[:page])
end
def view
@candidate = Candidate.find_by(test_hash: params[:test_hash])
@quiz = @candidate.my_quiz
@status = QuizStatus.new(@candidate)
@comments = QuizComment.includes(:user).where(test_hash: @candidate.test_hash).order(:created_at)
@comment = QuizComment.new
end
private
def sort_column
@sort_col ||= Candidate.column_names.include?(params[:sort]) ? params[:sort] : 'completed_at'
end
def sort_direction
%w(asc desc).include?(params[:direction]) ? params[:direction] : 'desc'
end
end
end