diff options
-rw-r--r-- | app/models/user.rb | 7 | ||||
-rw-r--r-- | app/uploaders/avatar_uploader.rb | 8 |
2 files changed, 8 insertions, 7 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 37285c2a9d4..cd6e4332a76 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -166,9 +166,10 @@ class User < ActiveRecord::Base validate :owns_public_email, if: ->(user) { user.public_email_changed? } validates :avatar, file_size: { maximum: 200.kilobytes.to_i } - [:avatar_crop_x, :avatar_crop_y, :avatar_crop_size].each do |field| - validates field, numericality: { only_integer: true }, presence: true, if: ->(user) { user.avatar_changed? } - end + validates :avatar_crop_x, :avatar_crop_y, :avatar_crop_size, + numericality: { only_integer: true }, + presence: true, + if: ->(user) { user.avatar_changed? } before_validation :generate_password, on: :create before_validation :restricted_signup_domains, on: :create diff --git a/app/uploaders/avatar_uploader.rb b/app/uploaders/avatar_uploader.rb index c8d9ab072e8..2c72df44ff0 100644 --- a/app/uploaders/avatar_uploader.rb +++ b/app/uploaders/avatar_uploader.rb @@ -11,10 +11,10 @@ class AvatarUploader < CarrierWave::Uploader::Base process :cropper def cropper - if model.kind_of?(User) && model.valid? - manipulate! do |img| - img.crop "#{model.avatar_crop_size}x#{model.avatar_crop_size}+#{model.avatar_crop_x}+#{model.avatar_crop_y}" - end + return unless model.respond_to?(:avatar_crop_size) && model.valid? + + manipulate! do |img| + img.crop "#{model.avatar_crop_size}x#{model.avatar_crop_size}+#{model.avatar_crop_x}+#{model.avatar_crop_y}" end end |