diff --git a/app/models/user_profile.rb b/app/models/user_profile.rb index 32c0e2047c3..38b04b74d5b 100644 --- a/app/models/user_profile.rb +++ b/app/models/user_profile.rb @@ -1,8 +1,10 @@ class UserProfile < ActiveRecord::Base belongs_to :user, inverse_of: :user_profile + WEBSITE_REGEXP = /(^$)|(^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,9}(([0-9]{1,5})?\/.*)?$)/ix + validates :bio_raw, length: { maximum: 3000 } - validates :website, format: { with: /(^$)|(^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,9}(([0-9]{1,5})?\/.*)?$)/ix }, allow_blank: true + validates :website, format: { with: WEBSITE_REGEXP }, allow_blank: true validates :user, presence: true before_save :cook after_save :trigger_badges diff --git a/script/import_scripts/base.rb b/script/import_scripts/base.rb index b91296edafa..1ebdaee3683 100644 --- a/script/import_scripts/base.rb +++ b/script/import_scripts/base.rb @@ -306,8 +306,8 @@ class ImportScripts::Base User.transaction do u.save! if bio_raw.present? || website.present? || location.present? - u.user_profile.bio_raw = bio_raw if bio_raw.present? - u.user_profile.website = website if website.present? + u.user_profile.bio_raw = bio_raw[0..2999] if bio_raw.present? + u.user_profile.website = website unless website.blank? || website !~ UserProfile::WEBSITE_REGEXP u.user_profile.location = location if location.present? u.user_profile.save! end