Sha256: cd75464b3a5b18e3adce7984d3fba844f72376ff3a25fe15431a140f6f03cdc3

Contents?: true

Size: 1.18 KB

Versions: 9

Compression:

Stored size: 1.18 KB

Contents

module Katello
  module Concerns
    module LocationExtensions
      extend ActiveSupport::Concern

      included do
        after_initialize :set_default_overrides, :if => :new_record?
        before_create :set_katello_default
        before_save :refute_katello_default_changed
        before_destroy :deletable?
      end

      def set_default_overrides
        self.ignore_types << ::ProvisioningTemplate.name
        self.ignore_types << ::Hostgroup.name
      end

      def set_katello_default
        if Location.default_location.nil?
          self.katello_default = true
        else
          self.katello_default = false
        end
        true
      end

      def deletable?
        if self.katello_default
          errors.add(:base, _("Cannot delete the default Location"))
          false
        end
      end

      def refute_katello_default_changed
        fail _("katello_default cannot be changed.") if self.katello_default_changed?
      end

      module ClassMethods
        def default_location
          # In the future, we should have a better way to identify the 'default' location
          Location.where(:katello_default => true).first
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
katello-2.4.5 app/models/katello/concerns/location_extensions.rb
katello-2.4.4 app/models/katello/concerns/location_extensions.rb
katello-2.4.3 app/models/katello/concerns/location_extensions.rb
katello-2.4.2 app/models/katello/concerns/location_extensions.rb
katello-2.4.1 app/models/katello/concerns/location_extensions.rb
katello-2.4.0 app/models/katello/concerns/location_extensions.rb
katello-2.4.0.rc3 app/models/katello/concerns/location_extensions.rb
katello-2.4.0.rc2 app/models/katello/concerns/location_extensions.rb
katello-2.4.0.rc1 app/models/katello/concerns/location_extensions.rb