2026-07-23 10:41:46 -04:00
|
|
|
class Baclight::EmployerPolicy < ApplicationPolicy
|
|
|
|
|
|
|
|
|
|
def id_cards?; employer_rule?; end
|
2026-09-16 12:41:44 -04:00
|
|
|
def members_list?; employer_rule?; end
|
|
|
|
|
def coverage?; employer_rule?; end
|
|
|
|
|
def available_document_categories?; member_employer_rule?; end
|
|
|
|
|
def documents?; member_employer_rule?; end
|
2026-07-23 10:41:46 -04:00
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
2026-09-16 12:41:44 -04:00
|
|
|
def member_employer_rule?
|
|
|
|
|
user.admin? ||
|
|
|
|
|
(user.member? && record.id == user.keychain[:employer_id]) ||
|
|
|
|
|
(user.employer? && record.id == user.keychain[:id]) ||
|
|
|
|
|
(user.broker? && record.broker_id == user.keychain[:id]) ||
|
|
|
|
|
(user.carrier? && record.carrier_id == user.keychain[:id])
|
|
|
|
|
end
|
|
|
|
|
|
2026-07-23 10:41:46 -04:00
|
|
|
def employer_rule?
|
|
|
|
|
user.admin? ||
|
2026-09-16 12:41:44 -04:00
|
|
|
(user.employer? && record.id == user.keychain[:id]) ||
|
2026-07-23 10:41:46 -04:00
|
|
|
(user.broker? && record.broker_id == user.keychain[:id]) ||
|
|
|
|
|
(user.carrier? && record.carrier_id == user.keychain[:id])
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|