OSDN Git Service

Dont allow upload of non-image formats for user avatar
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Mon, 23 Dec 2013 18:28:59 +0000 (20:28 +0200)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Mon, 23 Dec 2013 18:28:59 +0000 (20:28 +0200)
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/models/user.rb

index d36af7a..cdf6592 100644 (file)
@@ -113,9 +113,8 @@ class User < ActiveRecord::Base
                       message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
 
   validates :notification_level, inclusion: { in: Notification.notification_levels }, presence: true
-
   validate :namespace_uniq, if: ->(user) { user.username_changed? }
-
+  validate :avatar_type, if: ->(user) { user.avatar_changed? }
   validates :avatar, file_size: { maximum: 100.kilobytes.to_i }
 
   before_validation :generate_password, on: :create
@@ -244,6 +243,12 @@ class User < ActiveRecord::Base
     end
   end
 
+  def avatar_type
+    unless self.avatar.image?
+      self.errors.add :avatar, "only images allowed"
+    end
+  end
+
   # Groups user has access to
   def authorized_groups
     @authorized_groups ||= begin