Module: SpreeCmCommissioner::RoleDecorator

Defined in:
app/models/spree_cm_commissioner/role_decorator.rb

Class Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/models/spree_cm_commissioner/role_decorator.rb', line 3

def self.prepended(base)
  base.has_many :role_permissions, class_name: 'SpreeCmCommissioner::RolePermission'
  base.has_many :permissions, through: :role_permissions, class_name: 'SpreeCmCommissioner::Permission'

  base.belongs_to :vendor, optional: true

  base.scope :non_vendor, -> { where(vendor_id: nil) }

  base.accepts_nested_attributes_for :role_permissions, allow_destroy: true

  base._validators.reject! { |key, _| key == :name }
  base._validate_callbacks.each { |c| c.filter.attributes.delete(:name) if c.filter.respond_to?(:attributes) }

  base.validates :name, uniqueness: { scope: :vendor_id, allow_blank: true }
end