app/models/katello/activation_key.rb in katello-3.12.3 vs app/models/katello/activation_key.rb in katello-3.13.0.rc1

- old
+ new

@@ -20,14 +20,19 @@ has_many :subscriptions, :through => :pools has_many :subscription_facet_activation_keys, :class_name => "Katello::SubscriptionFacetActivationKey", :dependent => :destroy has_many :subscription_facets, :through => :subscription_facet_activation_keys + has_many :activation_key_purpose_addons, :class_name => "Katello::ActivationKeyPurposeAddon", :dependent => :destroy, :inverse_of => :activation_key + has_many :purpose_addons, :class_name => "Katello::PurposeAddon", :through => :activation_key_purpose_addons + alias_method :lifecycle_environment, :environment before_validation :set_default_content_view, :unless => :persisted? + accepts_nested_attributes_for :purpose_addons + validates_lengths_from_database validates_with Validators::KatelloNameFormatValidator, :attributes => :name validates :name, :presence => true validates :name, :uniqueness => {:scope => :organization_id} validate :environment_exists @@ -59,10 +64,13 @@ scoped_search :on => :content_view_id, :complete_value => true, :only_explicit => true, :validator => ScopedSearch::Validators::INTEGER scoped_search :on => :description, :complete_value => true scoped_search :on => :name, :relation => :subscriptions, :rename => :subscription_name, :complete_value => true, :ext_method => :find_by_subscription_name scoped_search :on => :id, :relation => :subscriptions, :rename => :subscription_id, :complete_value => true, :only_explicit => true, :validator => ScopedSearch::Validators::INTEGER, :ext_method => :find_by_subscription_id + scoped_search :on => :purpose_usage, :rename => :usage, :complete_value => true + scoped_search :on => :purpose_role, :rename => :role, :complete_value => true + scoped_search :on => :name, :rename => :addon, :relation => :purpose_addon, :complete_value => true, :ext_method => :find_by_purpose_addons def environment_exists if environment_id && environment.nil? errors.add(:environment, _("ID: %s doesn't exist ") % environment_id) elsif !environment.nil? && environment.organization != self.organization @@ -158,9 +166,15 @@ if activation_key_ids.empty? {:conditions => "1=0"} else {:conditions => "#{Katello::ActivationKey.table_name}.id IN (#{activation_key_ids.join(',')})"} end + end + + def self.find_by_purpose_addons(_key, operator, value) + conditions = sanitize_sql_for_conditions(["#{Katello::PurposeAddon.table_name}.name #{operator} ?", value_to_sql(operator, value)]) + activation_keys = ::Katello::ActivationKey.joins(:purpose_addons).where(conditions) + return_activation_keys_by_id(activation_keys.pluck(:id)) end private def set_default_content_view