Module: SolidusUserRoles::Spree::RoleDecorator

Defined in:
app/decorators/models/solidus_user_roles/spree/role_decorator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



6
7
8
9
10
11
12
13
# File 'app/decorators/models/solidus_user_roles/spree/role_decorator.rb', line 6

def self.prepended(base)
  base.has_many :role_permissions, dependent: :destroy
  base.has_many :permission_sets, through: :role_permissions

  base.scope :non_base_roles, -> { where.not(name: ['admin', 'user']) }
  base.validates_uniqueness_of :name, case_sensitive: false
  base.after_save :assign_permissions
end

Instance Method Details

#assign_permissionsObject



19
20
21
# File 'app/decorators/models/solidus_user_roles/spree/role_decorator.rb', line 19

def assign_permissions
  ::Spree::Config.roles.assign_permissions name, permission_sets_constantized
end

#permission_sets_constantizedObject



15
16
17
# File 'app/decorators/models/solidus_user_roles/spree/role_decorator.rb', line 15

def permission_sets_constantized
  permission_sets.map(&:set).map(&:constantize)
end