diff --git a/app/assets/javascripts/registrar/application.coffee b/app/assets/javascripts/registrar/application.coffee index 9dda64de6..943f14a23 100644 --- a/app/assets/javascripts/registrar/application.coffee +++ b/app/assets/javascripts/registrar/application.coffee @@ -27,3 +27,16 @@ $(document).on 'page:change', -> form.find('.js-ident-tip').show() $('.js-contact-form').trigger('restoreDefault') + + $('[data-legal-document]').each (i, fileInput)-> + minSize = 8 * 1024 # 8kB + maxSize = 8 * 1024 * 1024; # 8 MB + $(fileInput).closest('form').submit (e) -> + if (files = fileInput.files).length + fileSize = files[0].size + if fileSize < minSize + alert 'Document size should be more than 8kB' + return false + else if fileSize > maxSize + alert 'Document size should be less than 8MB' + return false diff --git a/app/models/epp/contact.rb b/app/models/epp/contact.rb index d732cad74..fef4c3eda 100644 --- a/app/models/epp/contact.rb +++ b/app/models/epp/contact.rb @@ -5,6 +5,7 @@ class Epp::Contact < Contact self.inheritance_column = :sti_disabled before_validation :manage_permissions + def manage_permissions return unless update_prohibited? || delete_prohibited? add_epp_error('2304', nil, nil, I18n.t(:object_status_prohibits_operation)) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 3ac02c721..991c6d9ba 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -6,6 +6,7 @@ class Epp::Domain < Domain attr_accessor :is_renewal, :is_transfer before_validation :manage_permissions + def manage_permissions return if is_admin # this bad hack for 109086524, refactor later return true if is_transfer || is_renewal diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index 5aef34675..e807ae2f7 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -9,6 +9,9 @@ class LegalDocument < ActiveRecord::Base belongs_to :documentable, polymorphic: true + + validates :body, length: { minimum: (1.37 * 8.kilobytes).ceil }, if: ->(file){ file.path.blank? && !Rails.env.staging?} + before_create :add_creator before_save :save_to_filesystem diff --git a/app/views/registrar/contacts/form_partials/_legal_document.haml b/app/views/registrar/contacts/form_partials/_legal_document.haml index 7875e99c8..bffa69831 100644 --- a/app/views/registrar/contacts/form_partials/_legal_document.haml +++ b/app/views/registrar/contacts/form_partials/_legal_document.haml @@ -10,4 +10,4 @@ = f.label :legal_document, t(:legal_document) %p.help-block= t(:legal_document_max_size) .col-md-7 - = f.file_field :legal_document, :value => '' + = f.file_field :legal_document, :value => '', data: {legal_document: true} diff --git a/app/views/registrar/domains/_form.haml b/app/views/registrar/domains/_form.haml index 79771b118..83ad8add0 100644 --- a/app/views/registrar/domains/_form.haml +++ b/app/views/registrar/domains/_form.haml @@ -18,7 +18,7 @@ = label_tag 'domain[legal_document]', t(:legal_document), class: c %p.help-block= t(:legal_document_max_size) .col-md-7 - = file_field_tag 'domain[legal_document]', required: fr + = file_field_tag 'domain[legal_document]', required: fr, data: {legal_document: true} .col-md-4 %p.domain-general-help= t(:domain_general_help).html_safe %p.domain-admin-contact-help= t(:domain_admin_contact_help).html_safe