move recruiter to admin/candidate
This commit is contained in:
33
app/policies/candidate_policy.rb
Normal file
33
app/policies/candidate_policy.rb
Normal file
@ -0,0 +1,33 @@
|
||||
# frozen_string_literal: true
|
||||
class CandidatePolicy < ApplicationPolicy
|
||||
# Candidate Access Policy
|
||||
#
|
||||
# Only Recruiters and Admins can view, create, or update, candidates
|
||||
|
||||
def index?
|
||||
user.acts_as_recruiter?
|
||||
end
|
||||
|
||||
def view?
|
||||
user.acts_as_recruiter?
|
||||
end
|
||||
|
||||
def create?
|
||||
user.acts_as_recruiter?
|
||||
end
|
||||
|
||||
def update?
|
||||
user.acts_as_recruiter?
|
||||
end
|
||||
|
||||
def resend_welcome?
|
||||
user.acts_as_recruiter?
|
||||
end
|
||||
|
||||
class Scope < Scope
|
||||
def resolve
|
||||
return scope if user.acts_as_recruiter?
|
||||
raise Pundit::NotAuthorizedError, "No Access to Resource"
|
||||
end
|
||||
end
|
||||
end
|
@ -8,27 +8,27 @@ class QuestionPolicy < ApplicationPolicy
|
||||
|
||||
def view?
|
||||
return false if user.recruiter?
|
||||
return true if user.admin? || user.manager?
|
||||
return true if user.acts_as_manager?
|
||||
user.quizzes.include? record.quiz
|
||||
end
|
||||
|
||||
def options?
|
||||
view?
|
||||
end
|
||||
|
||||
def create?
|
||||
user.manager? || user.admin?
|
||||
user.acts_as_manager?
|
||||
end
|
||||
|
||||
def update?
|
||||
user.manager? || user.admin?
|
||||
end
|
||||
|
||||
def options?
|
||||
!user.recruiter?
|
||||
user.acts_as_manager?
|
||||
end
|
||||
|
||||
class Scope < Scope
|
||||
def resolve
|
||||
raise(Pundit::NotAuthorizedError, 'No Access to resource.') if user.recruiter?
|
||||
|
||||
if user.admin? || user.manager?
|
||||
if user.acts_as_manager?
|
||||
scope
|
||||
else
|
||||
scope.where(quiz_id: user.quizzes.map(&:id))
|
||||
|
@ -11,16 +11,16 @@ class QuizPolicy < ApplicationPolicy
|
||||
end
|
||||
|
||||
def view?
|
||||
return true if user.admin? || user.manager?
|
||||
return true if user.acts_as_manager?
|
||||
user.quizzes.include? record
|
||||
end
|
||||
|
||||
def create?
|
||||
user.manager? || user.admin?
|
||||
user.acts_as_manager?
|
||||
end
|
||||
|
||||
def update?
|
||||
user.manager? || user.admin?
|
||||
user.acts_as_manager?
|
||||
end
|
||||
|
||||
class Scope < Scope
|
||||
|
@ -6,29 +6,29 @@ class UserPolicy < ApplicationPolicy
|
||||
# All other users can only access themselves (profile interface)
|
||||
|
||||
def index?
|
||||
user.admin?
|
||||
user.acts_as_admin?
|
||||
end
|
||||
|
||||
def view?
|
||||
user.admin? || user == record
|
||||
user.acts_as_admin? || user == record
|
||||
end
|
||||
|
||||
def create?
|
||||
user.admin?
|
||||
user.acts_as_admin?
|
||||
end
|
||||
|
||||
def update?
|
||||
user.admin? || user == record
|
||||
user.acts_as_admin? || user == record
|
||||
end
|
||||
|
||||
def permitted_attributes
|
||||
return [:name, :email, :role, :password, quiz_ids: []] if user.admin?
|
||||
return [:name, :email, :role, :password, quiz_ids: []] if user.acts_as_admin?
|
||||
[:name, :email, :password, :password_confirmation]
|
||||
end
|
||||
|
||||
class Scope < Scope
|
||||
def resolve
|
||||
return scope if user.admin?
|
||||
return scope if user.acts_as_admin?
|
||||
scope.where(id: user.id)
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user