Its been a while
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class ApplicationPolicy
|
||||
attr_reader :user, :record
|
||||
|
||||
def initialize(user, record)
|
||||
@user = user
|
||||
@record = record
|
||||
end
|
||||
|
||||
def index?
|
||||
false
|
||||
end
|
||||
|
||||
def show?
|
||||
false
|
||||
end
|
||||
|
||||
def create?
|
||||
false
|
||||
end
|
||||
|
||||
def new?
|
||||
create?
|
||||
end
|
||||
|
||||
def update?
|
||||
false
|
||||
end
|
||||
|
||||
def edit?
|
||||
update?
|
||||
end
|
||||
|
||||
def destroy?
|
||||
false
|
||||
end
|
||||
|
||||
class Scope
|
||||
def initialize(user, scope)
|
||||
@user = user
|
||||
@scope = scope
|
||||
end
|
||||
|
||||
def resolve
|
||||
raise NoMethodError, "You must define #resolve in #{self.class}"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
attr_reader :user, :scope
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,13 @@
|
||||
class Baclight::BrokerPolicy < ApplicationPolicy
|
||||
|
||||
def employers_list?; true; end
|
||||
|
||||
private
|
||||
|
||||
def broker_rule?
|
||||
user.admin? ||
|
||||
(user.broker? && record.broker_id == user.keychain[:id]) ||
|
||||
(user.carrier? && record.carrier_id == user.keychain[:id])
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,15 @@
|
||||
class Baclight::EmployerPolicy < ApplicationPolicy
|
||||
|
||||
def id_cards?; employer_rule?; end
|
||||
def members_list?; true; end
|
||||
|
||||
private
|
||||
|
||||
def employer_rule?
|
||||
user.admin? ||
|
||||
(user.employer? && record.employer_id == user.keychain[:id]) ||
|
||||
(user.broker? && record.broker_id == user.keychain[:id]) ||
|
||||
(user.carrier? && record.carrier_id == user.keychain[:id])
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,22 @@
|
||||
class Baclight::MemberPolicy < ApplicationPolicy
|
||||
|
||||
def initialize_dashboard?; member_rule?; end
|
||||
def id_card?; member_rule?; end
|
||||
|
||||
def claims?
|
||||
user.admin? ||
|
||||
(user.member? && record.id == user.keychain[:id]) ||
|
||||
(user.carrier? && record.carrier_id == user.keychain[:id])
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def member_rule?
|
||||
user.admin? ||
|
||||
(user.member? && record.id == user.keychain[:id]) ||
|
||||
(user.employer? && record.employer_id == user.keychain[:id]) ||
|
||||
(user.broker? && record.broker_id == user.keychain[:id]) ||
|
||||
(user.carrier? && record.carrier_id == user.keychain[:id])
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,18 @@
|
||||
class IdCardsPolicy < ApplicationPolicy
|
||||
# Corresponds to PostController#edit or #update
|
||||
def member_card?
|
||||
user.admin? ||
|
||||
(user.carrier? && record.belongs_to_levels.carrier_id == user.keychain.id) ||
|
||||
(user.broker? && record.belongs_to_levels.broker_id == user.keychain.id) ||
|
||||
(user.employer? && record.pl_plan_key == user.keychain.pl_plan_key) ||
|
||||
(user.member? && record.pb_entity_key == user.keychain.pb_entity_key)
|
||||
end
|
||||
|
||||
# Corresponds to PostController#destroy
|
||||
def employer_cards?
|
||||
user.admin? ||
|
||||
(user.carrier? && record.belongs_to_levels.carrier_id == user.keychain.id) ||
|
||||
(user.broker? && record.belongs_to_levels.broker_id == user.keychain.id) ||
|
||||
(user.employer? && record.pl_plan_key == user.keychain.pl_plan_key)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user