Project

General

Profile

« Previous | Next » 

Revision 32ced385

Added by Ori Rabin almost 10 years ago

Fixes #215: Parameters can be saved without a value

View differences:

app/controllers/domains_controller.rb
def new
@domain = Domain.new
@domain.domain_parameters.build
end
def create
app/models/domain.rb
has_and_belongs_to_many :users, :join_table => "user_domains"
has_many :interfaces, :class_name => 'Nic::Base'
accepts_nested_attributes_for :domain_parameters, :reject_if => lambda { |a| a[:value].blank? }, :allow_destroy => true
accepts_nested_attributes_for :domain_parameters, :allow_destroy => true
validates :name, :presence => true, :uniqueness => true
validates :fullname, :uniqueness => true, :allow_blank => true, :allow_nil => true
app/models/host/managed.rb
has_many :reports, :dependent => :destroy, :foreign_key => :host_id
has_many :host_parameters, :dependent => :destroy, :foreign_key => :reference_id
has_many :parameters, :dependent => :destroy, :foreign_key => :reference_id, :class_name => "HostParameter"
accepts_nested_attributes_for :host_parameters, :reject_if => lambda { |a| a[:value].blank? }, :allow_destroy => true
accepts_nested_attributes_for :host_parameters, :allow_destroy => true
has_many :interfaces, :dependent => :destroy, :inverse_of => :host, :class_name => 'Nic::Base', :foreign_key => :host_id
accepts_nested_attributes_for :interfaces, :reject_if => lambda { |a| a[:mac].blank? }, :allow_destroy => true
belongs_to :owner, :polymorphic => true
app/models/hostgroup.rb
validates :name, :format => { :with => /\A(\S+\s?)+\Z/, :message => N_("can't contain trailing white spaces.")}
validates :root_pass, :allow_blank => true, :length => {:minimum => 8, :message => _('should be 8 characters or more')}
has_many :group_parameters, :dependent => :destroy, :foreign_key => :reference_id
accepts_nested_attributes_for :group_parameters, :reject_if => lambda { |a| a[:value].blank? }, :allow_destroy => true
accepts_nested_attributes_for :group_parameters, :allow_destroy => true
has_many_hosts
has_many :template_combinations, :dependent => :destroy
has_many :config_templates, :through => :template_combinations
app/models/operatingsystem.rb
validates :major, :numericality => {:greater_than_or_equal_to => 0}, :presence => { :message => N_("Operating System version is required") }
has_many :os_parameters, :dependent => :destroy, :foreign_key => :reference_id
has_many :parameters, :dependent => :destroy, :foreign_key => :reference_id, :class_name => "OsParameter"
accepts_nested_attributes_for :os_parameters, :reject_if => lambda { |a| a[:value].blank? }, :allow_destroy => true
accepts_nested_attributes_for :os_parameters, :allow_destroy => true
has_many :trends, :as => :trendable, :class_name => "ForemanTrend"
attr_name :to_label
validates :minor, :numericality => {:greater_than_or_equal_to => 0}, :allow_nil => true, :allow_blank => true
app/models/parameter.rb
belongs_to_host :foreign_key => :reference_id
include Authorizable
validates :value, :presence => true
validates :name, :presence => true, :format => {:with => /\A\S*\Z/, :message => N_("can't contain white spaces")}
validates :reference_id, :presence => {:message => N_("parameters require an associated domain, operating system, host or host group")}, :unless => Proc.new {|p| p.nested or p.is_a? CommonParameter}
app/models/taxonomies/location.rb
has_many :location_parameters, :class_name => 'LocationParameter', :foreign_key => :reference_id, :dependent => :destroy
has_many :default_users, :class_name => 'User', :foreign_key => :default_location_id
accepts_nested_attributes_for :location_parameters, :reject_if => lambda { |a| a[:value].blank? }, :allow_destroy => true
accepts_nested_attributes_for :location_parameters, :allow_destroy => true
scope :completer_scope, lambda { |opts| my_locations }
app/models/taxonomies/organization.rb
has_many :organization_parameters, :class_name => 'OrganizationParameter', :foreign_key => :reference_id, :dependent => :destroy
has_many :default_users, :class_name => 'User', :foreign_key => :default_organization_id, :dependent => :nullify
accepts_nested_attributes_for :organization_parameters, :reject_if => lambda { |a| a[:value].blank? }, :allow_destroy => true
accepts_nested_attributes_for :organization_parameters, :allow_destroy => true
scope :completer_scope, lambda { |opts| my_organizations }
test/unit/common_parameter_test.rb
assert parameter.save
end
test "value can't be blank" do
test "value can be blank" do
parameter = CommonParameter.new :name => "some_parameter", :value => " "
assert parameter.value.strip.empty?
assert !parameter.save
assert parameter.save
end
test "value can't be empty" do
test "value can be empty" do
parameter = CommonParameter.new :name => "some_parameter", :value => ""
assert parameter.value.strip.empty?
assert !parameter.save
assert parameter.save
end
test "value can contain spaces and unusual characters" do

Also available in: Unified diff