vote/veto processing
This commit is contained in:
41
app/policies/reviewer_vote_policy.rb
Normal file
41
app/policies/reviewer_vote_policy.rb
Normal file
@ -0,0 +1,41 @@
|
||||
# frozen_string_literal: true
|
||||
class ReviewerVotePolicy < ApplicationPolicy
|
||||
# Voting Policy
|
||||
#
|
||||
# Only Reviewers, Managers, and Admins, can cast a vote on a quiz result
|
||||
#
|
||||
# Reviewers can vote any quiz they are linked to
|
||||
# Only Managers, and Admins, can veto a quiz result
|
||||
|
||||
def up?
|
||||
# return true if user.acts_as_admin?
|
||||
# user.quizzes.include? record.candidate.quiz
|
||||
true
|
||||
end
|
||||
|
||||
def down?
|
||||
# return true if user.acts_as_manager?
|
||||
# user.quizzes.include? record
|
||||
true
|
||||
end
|
||||
|
||||
def approve?
|
||||
user.acts_as_manager?
|
||||
end
|
||||
|
||||
def decline?
|
||||
user.acts_as_manager?
|
||||
end
|
||||
|
||||
class Scope < Scope
|
||||
def resolve
|
||||
return ReviewerVote.none if user.recruiter?
|
||||
|
||||
if user.reviewer?
|
||||
scope.where(user_id: user.id)
|
||||
else
|
||||
scope
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user