Class: SolidusUserRoles::Engine

Inherits:
Rails::Engine
  • Object
show all
Includes:
SolidusSupport::EngineExtensions
Defined in:
lib/solidus_user_roles/engine.rb

Class Method Summary collapse

Class Method Details

.activateObject



34
35
36
37
38
39
40
41
# File 'lib/solidus_user_roles/engine.rb', line 34

def self.activate
  Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')).sort.each do |c|
    Rails.configuration.cache_classes ? require(c) : load(c)
  end
  return if Rails.env.test?

  SolidusUserRoles::Engine.load_custom_permissions
end

.load_custom_permissionsObject



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/solidus_user_roles/engine.rb', line 20

def self.load_custom_permissions
  # Ensure both tables exist before assigning permissions
  if ActiveRecord::Base.connected? &&
      (ActiveRecord::Base.connection.tables & ['spree_roles', 'spree_permission_sets']).to_a.length == 2
    ::Spree::Role.non_base_roles.each do |role|
      ::Spree::Config.roles.assign_permissions role.name, role.permission_sets_constantized
    end
  end
rescue ActiveRecord::NoDatabaseError
  warn "No database available, skipping role configuration"
rescue ActiveRecord::StatementInvalid => e
  warn "Skipping role configuration: #{e.message}"
end