diff options
author | Stan Hu <stanhu@gmail.com> | 2015-03-20 15:11:12 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2015-04-02 10:04:08 +0300 |
commit | dfd256f29ee817b5ffc563bb554a02d26ae44502 (patch) | |
tree | c28e943c541df30a2a0ab03905bf5d7bbe61b3ba /lib | |
parent | 16a6ea2d1769f68157976b83bf6da468dd38853d (diff) |
Support configurable attachment size via Application Settings
Fix bug where error messages from Dropzone would not be displayed on the issues page
Closes #1258
Diffstat (limited to 'lib')
-rw-r--r-- | lib/file_size_validator.rb | 12 | ||||
-rw-r--r-- | lib/gitlab/current_settings.rb | 3 |
2 files changed, 12 insertions, 3 deletions
diff --git a/lib/file_size_validator.rb b/lib/file_size_validator.rb index 42970c1be59..2eae55e534b 100644 --- a/lib/file_size_validator.rb +++ b/lib/file_size_validator.rb @@ -25,8 +25,8 @@ class FileSizeValidator < ActiveModel::EachValidator keys.each do |key| value = options[key] - unless value.is_a?(Integer) && value >= 0 - raise ArgumentError, ":#{key} must be a nonnegative Integer" + unless (value.is_a?(Integer) && value >= 0) || value.is_a?(Symbol) + raise ArgumentError, ":#{key} must be a nonnegative Integer or symbol" end end end @@ -39,6 +39,14 @@ class FileSizeValidator < ActiveModel::EachValidator CHECKS.each do |key, validity_check| next unless check_value = options[key] + check_value = + case check_value + when Integer + check_value + when Symbol + record.send(check_value) + end + value ||= [] if key == :maximum value_size = value.size diff --git a/lib/gitlab/current_settings.rb b/lib/gitlab/current_settings.rb index 0ebebfa09c4..d8f696d247b 100644 --- a/lib/gitlab/current_settings.rb +++ b/lib/gitlab/current_settings.rb @@ -20,7 +20,8 @@ module Gitlab signin_enabled: Settings.gitlab['signin_enabled'], gravatar_enabled: Settings.gravatar['enabled'], sign_in_text: Settings.extra['sign_in_text'], - restricted_visibility_levels: Settings.gitlab['restricted_visibility_levels'] + restricted_visibility_levels: Settings.gitlab['restricted_visibility_levels'], + max_attachment_size: Settings.gitlab['max_attachment_size'] ) end end |