From 082afe1d85f1cce8187feae2572a244ec5620f5f Mon Sep 17 00:00:00 2001 From: Lukas Zapletal Date: Wed, 2 Nov 2011 16:39:19 +0100 Subject: [PATCH] 702052 - db fields length limit review --- src/app/models/activation_key.rb | 2 +- src/app/models/changeset.rb | 3 ++- src/app/models/changeset_dependency.rb | 1 + src/app/models/changeset_erratum.rb | 1 + src/app/models/changeset_package.rb | 1 + src/app/models/changeset_repo.rb | 1 + src/app/models/help_tip.rb | 1 + src/app/models/notice.rb | 3 +++ src/app/models/permission.rb | 1 + src/app/models/provider.rb | 1 + src/app/models/resource_type.rb | 1 + src/app/models/search_favorite.rb | 2 ++ src/app/models/search_history.rb | 2 ++ src/app/models/system.rb | 1 + src/app/models/system_template.rb | 3 +++ src/app/models/user.rb | 2 +- src/app/models/verb.rb | 1 + 17 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/app/models/activation_key.rb b/src/app/models/activation_key.rb index 3982b348803..e0a01359fc5 100644 --- a/src/app/models/activation_key.rb +++ b/src/app/models/activation_key.rb @@ -28,7 +28,7 @@ class ActivationKey < ActiveRecord::Base scoped_search :on => :description, :complete_value => true, :rename => :'key.description' scoped_search :in => :environment, :on => :name, :complete_value => true, :rename => :'environment.name' - validates :name, :presence => true, :katello_name_format => true + validates :name, :presence => true, :katello_name_format => true, :length => { :maximum => 255 } validates_uniqueness_of :name, :scope => :organization_id validates :description, :katello_description_format => true validates :environment, :presence => true diff --git a/src/app/models/changeset.rb b/src/app/models/changeset.rb index c15fb26b8b9..31a4490c4be 100644 --- a/src/app/models/changeset.rb +++ b/src/app/models/changeset.rb @@ -32,9 +32,10 @@ class Changeset < ActiveRecord::Base :allow_blank => false, :message => "A changeset must have one of the following states: #{STATES.join(', ')}." - validates :name, :presence => true, :allow_blank => false + validates :name, :presence => true, :allow_blank => false, :length => { :maximum => 255 } validates_uniqueness_of :name, :scope => :environment_id, :message => N_("Must be unique within an environment") validates :environment, :presence=>true + validates :description, :katello_description_format => true validates_with NotInLockerValidator has_and_belongs_to_many :products, :uniq => true has_many :packages, :class_name=>"ChangesetPackage", :inverse_of=>:changeset diff --git a/src/app/models/changeset_dependency.rb b/src/app/models/changeset_dependency.rb index 8e3bd2cabd8..255e3e3bd9d 100644 --- a/src/app/models/changeset_dependency.rb +++ b/src/app/models/changeset_dependency.rb @@ -17,6 +17,7 @@ class ChangesetDependency < ActiveRecord::Base belongs_to :changeset, :inverse_of=>:dependencies belongs_to :product + validates :display_name, :length => { :maximum => 255 } # returns list of virtual permission tags for the current user def self.list_tags diff --git a/src/app/models/changeset_erratum.rb b/src/app/models/changeset_erratum.rb index c3ae1822823..99ec59c8d0d 100644 --- a/src/app/models/changeset_erratum.rb +++ b/src/app/models/changeset_erratum.rb @@ -43,6 +43,7 @@ class ChangesetErratum < ActiveRecord::Base belongs_to :changeset, :inverse_of=>:errata belongs_to :product + validates :display_name, :length => { :maximum => 255 } validates_with ChangesetErratumValidator # returns list of virtual permission tags for the current user diff --git a/src/app/models/changeset_package.rb b/src/app/models/changeset_package.rb index 06c5a2e2653..b2dd2329081 100644 --- a/src/app/models/changeset_package.rb +++ b/src/app/models/changeset_package.rb @@ -42,6 +42,7 @@ class ChangesetPackage < ActiveRecord::Base belongs_to :changeset, :inverse_of=>:packages belongs_to :product + validates :display_name, :length => { :maximum => 255 } validates_with ChangesetPackageValidator # returns list of virtual permission tags for the current user diff --git a/src/app/models/changeset_repo.rb b/src/app/models/changeset_repo.rb index ffec60b4ac8..24d1c71c0f9 100644 --- a/src/app/models/changeset_repo.rb +++ b/src/app/models/changeset_repo.rb @@ -33,6 +33,7 @@ class ChangesetRepo < ActiveRecord::Base belongs_to :changeset, :inverse_of=>:repos belongs_to :product + validates :display_name, :length => { :maximum => 255 } validates_with ChangesetRepoValidator end diff --git a/src/app/models/help_tip.rb b/src/app/models/help_tip.rb index cff84052a3c..167b75792ea 100644 --- a/src/app/models/help_tip.rb +++ b/src/app/models/help_tip.rb @@ -12,4 +12,5 @@ class HelpTip < ActiveRecord::Base belongs_to :user + validates :key, :length => { :maximum => 255 } end diff --git a/src/app/models/notice.rb b/src/app/models/notice.rb index a4761431e42..d6c49d46e17 100644 --- a/src/app/models/notice.rb +++ b/src/app/models/notice.rb @@ -20,7 +20,10 @@ class Notice < ActiveRecord::Base validates_inclusion_of :level, :in => TYPES + TYPES.collect{|type| type.to_s} validates_presence_of :text + validates_length_of :text, :maximum => 1024 validates_length_of :user_notices, :minimum => 1 + validates_length_of :level, :maximum => 255 + validates_length_of :request_type, :maximum => 255 before_validation :set_default_notice_level before_save :add_to_all_users diff --git a/src/app/models/permission.rb b/src/app/models/permission.rb index f5d1a4709cb..4904e96876b 100644 --- a/src/app/models/permission.rb +++ b/src/app/models/permission.rb @@ -20,6 +20,7 @@ class Permission < ActiveRecord::Base before_save :cleanup_tags_verbs validates :name, :presence => true, :katello_name_format => true + validates :description, :katello_description_format => true validates_uniqueness_of :name, :scope => [:organization_id, :role_id], :message => N_("must be unique within an organization scope") diff --git a/src/app/models/provider.rb b/src/app/models/provider.rb index ea2afe133a3..1f6161e4909 100644 --- a/src/app/models/provider.rb +++ b/src/app/models/provider.rb @@ -71,6 +71,7 @@ def constraint_redhat_update end def valid_url + errors.add(:repository_url, _("is too long")) if self.repository_url.length > 255 errors.add(:repository_url, _("is invalid")) unless kurl_valid?(self.repository_url) end diff --git a/src/app/models/resource_type.rb b/src/app/models/resource_type.rb index 67b2a34ee45..0a19c8f9e34 100644 --- a/src/app/models/resource_type.rb +++ b/src/app/models/resource_type.rb @@ -45,6 +45,7 @@ def message class ResourceType < ActiveRecord::Base belongs_to :permission + validates :name, :length => { :maximum => 255 } def display_name ResourceType::TYPES[name][:name] diff --git a/src/app/models/search_favorite.rb b/src/app/models/search_favorite.rb index 1e54b3015f9..3c1d6be9696 100644 --- a/src/app/models/search_favorite.rb +++ b/src/app/models/search_favorite.rb @@ -15,6 +15,8 @@ class SearchFavorite < ActiveRecord::Base belongs_to :user validate :max_favorites + validates :params, :length => { :maximum => 255 } + validates :path, :length => { :maximum => 255 } def max_favorites if new_record? diff --git a/src/app/models/search_history.rb b/src/app/models/search_history.rb index 1248b7caa1a..afd9a187921 100644 --- a/src/app/models/search_history.rb +++ b/src/app/models/search_history.rb @@ -12,4 +12,6 @@ # class SearchHistory < ActiveRecord::Base belongs_to :user + validates :params, :length => { :maximum => 255 } + validates :path, :length => { :maximum => 255 } end diff --git a/src/app/models/system.rb b/src/app/models/system.rb index 52bd9d1480c..bacec7e15c5 100644 --- a/src/app/models/system.rb +++ b/src/app/models/system.rb @@ -36,6 +36,7 @@ class System < ActiveRecord::Base validates :environment, :presence => true, :non_locker_environment => true validates :name, :presence => true, :no_trailing_space => true, :uniqueness => true validates :description, :katello_description_format => true + validates_length_of :location, :maximum => 255 before_create :fill_defaults scope :by_env, lambda { |env| where('environment_id = ?', env) unless env.nil?} diff --git a/src/app/models/system_template.rb b/src/app/models/system_template.rb index ec0290d3d0b..c3262006f8a 100644 --- a/src/app/models/system_template.rb +++ b/src/app/models/system_template.rb @@ -35,7 +35,10 @@ class SystemTemplate < ActiveRecord::Base validates_presence_of :name validates_uniqueness_of :name, :scope => :environment_id + validates_length_of :name, :maximum => 255 validates_with ParentTemplateValidator + validates_length_of :description, :maximum => 255 + validates_length_of :parameters_json, :maximum => 255 belongs_to :parent, :class_name => "SystemTemplate" has_and_belongs_to_many :products, :uniq => true diff --git a/src/app/models/user.rb b/src/app/models/user.rb index 74c9029c585..e3622fa2d72 100644 --- a/src/app/models/user.rb +++ b/src/app/models/user.rb @@ -30,7 +30,7 @@ class User < ActiveRecord::Base has_many :search_histories, :dependent => :destroy - validates :username, :uniqueness => true, :presence => true, :username => true + validates :username, :uniqueness => true, :presence => true, :username => true, :length => { :maximum => 255 } validate :own_role_included_in_roles # check if the role does not already exist for new username diff --git a/src/app/models/verb.rb b/src/app/models/verb.rb index f087e89bf81..94da34f0a07 100644 --- a/src/app/models/verb.rb +++ b/src/app/models/verb.rb @@ -12,6 +12,7 @@ class Verb < ActiveRecord::Base has_and_belongs_to_many :permission + validates_length_of :verb, :maximum => 255 # alias for verb attribute def name