diff --git a/app/mailers/contact_mailer.rb b/app/mailers/contact_mailer.rb index 110ce6a71..08beae05d 100644 --- a/app/mailers/contact_mailer.rb +++ b/app/mailers/contact_mailer.rb @@ -1,8 +1,10 @@ class ContactMailer < ApplicationMailer include Que::Mailer - def email_updated(email, contact_id, should_deliver) - @contact = Contact.find_by(id: contact_id) + def email_updated(old_email, email, contact_id, should_deliver) + @contact = Contact.find_by(id: contact_id) + @old_email = old_email + return unless email || @contact return if delivery_off?(@contact, should_deliver) return if whitelist_blocked?(email) diff --git a/app/mailers/domain_mailer.rb b/app/mailers/domain_mailer.rb index a149ff2ed..7fe92130b 100644 --- a/app/mailers/domain_mailer.rb +++ b/app/mailers/domain_mailer.rb @@ -1,8 +1,9 @@ class DomainMailer < ApplicationMailer include Que::Mailer - def pending_update_request_for_old_registrant(domain_id, should_deliver) + def pending_update_request_for_old_registrant(domain_id, old_registrant_id, should_deliver) @domain = Domain.find_by(id: domain_id) + @old_registrant = Registrant.find(old_registrant_id) return unless @domain return if delivery_off?(@domain, should_deliver) @@ -16,8 +17,6 @@ class DomainMailer < ApplicationMailer return end - @old_registrant = Registrant.find(@domain.registrant_id_was) - confirm_path = "#{ENV['registrant_url']}/registrant/domain_update_confirms" @verification_url = "#{confirm_path}/#{@domain.id}?token=#{@domain.registrant_verification_token}" @@ -27,8 +26,9 @@ class DomainMailer < ApplicationMailer name: @domain.name)} [#{@domain.name}]") end - def pending_update_notification_for_new_registrant(domain_id, should_deliver) + def pending_update_notification_for_new_registrant(domain_id, old_registrant_id, should_deliver) @domain = Domain.find_by(id: domain_id) + @old_registrant = Registrant.find(old_registrant_id) return unless @domain return if delivery_off?(@domain, should_deliver) @@ -43,7 +43,6 @@ class DomainMailer < ApplicationMailer end @new_registrant = @domain.registrant # NB! new registrant at this point - @old_registrant = Registrant.find(@domain.registrant_id_was) return if whitelist_blocked?(@new_registrant.email) mail(to: format(@new_registrant.email), @@ -107,8 +106,9 @@ class DomainMailer < ApplicationMailer name: @domain.name)} [#{@domain.name}]") end - def pending_deleted(domain_id, should_deliver) + def pending_deleted(domain_id, old_registrant_id, should_deliver) @domain = Domain.find_by(id: domain_id) + @old_registrant = Registrant.find(old_registrant_id) return unless @domain return if delivery_off?(@domain, should_deliver) @@ -122,8 +122,6 @@ class DomainMailer < ApplicationMailer return end - @old_registrant = Registrant.find(@domain.registrant_id_was) - confirm_path = "#{ENV['registrant_url']}/registrant/domain_delete_confirms" @verification_url = "#{confirm_path}/#{@domain.id}?token=#{@domain.registrant_verification_token}" diff --git a/app/models/contact.rb b/app/models/contact.rb index 5181d722f..7ebfaf684 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -23,7 +23,7 @@ class Contact < ActiveRecord::Base validates :ident, format: { with: /\d{4}-\d{2}-\d{2}/, message: :invalid_birthday_format }, if: proc { |c| c.ident_type == 'birthday' } - validates :ident_country_code, presence: true, if: proc { |c| %w(org priv).include? c.ident_type } + validates :ident_country_code, presence: true, if: proc { |c| %w(org priv).include? c.ident_type }, on: :create validates :code, uniqueness: { message: :epp_id_taken }, format: { with: /\A[\w\-\:]*\Z/i, message: :invalid }, @@ -51,7 +51,7 @@ class Contact < ActiveRecord::Base emails << domains.map(&:registrant_email) if domains.present? emails = emails.flatten.uniq emails.each do |e| - ContactMailer.email_updated(e, id, deliver_emails).deliver + ContactMailer.email_updated(email_was, e, id, deliver_emails).deliver end end diff --git a/app/models/domain.rb b/app/models/domain.rb index bba0c5ba9..1acc0ebd6 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -438,6 +438,7 @@ class Domain < ActiveRecord::Base end def pending_update! + old_registrant_id = registrant_id return true if pending_update? self.epp_pending_update = true # for epp @@ -449,8 +450,8 @@ class Domain < ActiveRecord::Base new_registrant_email = registrant.email new_registrant_name = registrant.name - DomainMailer.pending_update_request_for_old_registrant(id, deliver_emails).deliver - DomainMailer.pending_update_notification_for_new_registrant(id, deliver_emails).deliver + DomainMailer.pending_update_request_for_old_registrant(id, old_registrant_id, deliver_emails).deliver + DomainMailer.pending_update_notification_for_new_registrant(id, old_registrant_id, deliver_emails).deliver reload # revert back to original @@ -510,7 +511,7 @@ class Domain < ActiveRecord::Base pending_delete_confirmation! save(validate: false) # should check if this did succeed - DomainMailer.pending_deleted(id, deliver_emails).deliver + DomainMailer.pending_deleted(id, registrant_id_was, deliver_emails).deliver end def cancel_pending_delete diff --git a/app/models/epp/contact.rb b/app/models/epp/contact.rb index 435a63dee..ec5673b06 100644 --- a/app/models/epp/contact.rb +++ b/app/models/epp/contact.rb @@ -104,6 +104,7 @@ class Epp::Contact < Contact res end end + delegate :ident_attr_valid?, to: :class def epp_code_map # rubocop:disable Metrics/MethodLength { diff --git a/app/views/mailers/contact_mailer/email_updated.html.erb b/app/views/mailers/contact_mailer/email_updated.html.erb index 552e97cdf..cd5a75682 100644 --- a/app/views/mailers/contact_mailer/email_updated.html.erb +++ b/app/views/mailers/contact_mailer/email_updated.html.erb @@ -1,7 +1,7 @@ Tere <%= @contact.name %>

Kontakti <%= @contact.name %> eposti aadress on muudetud
-endine aadress: <%= @contact.email_was %>
+endine aadress: <%= @old_email %>
uus aadress: <%= @contact.email %>

Eposti aadressile saadetakse domeenidega seotud infot seal hulgas kinnitustaotluseid omaniku vahetuse ja domeeni kustutamise korral. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduga oma registripidaja poole. Teie registripidaja on <%= @contact.registrar.name %> @@ -30,7 +30,7 @@ Eesti Interneti SA Hi <%= @contact.name %>

E-mail address of <%= @contact.name %> has been changed
-previous address: <%= @contact.email_was %>
+previous address: <%= @old_email %>
new address: <%= @contact.email %>

E-mail addresses are used to send important information regarding your registered domains including applications for approval of registrant change and domain deletion. Please make sure that the update and contact information are correct. Incase of problems please turn to your registrar. Your registrar is <%= @contact.registrar.name %> diff --git a/app/views/mailers/contact_mailer/email_updated.text.erb b/app/views/mailers/contact_mailer/email_updated.text.erb index ce43b5401..a899c04c2 100644 --- a/app/views/mailers/contact_mailer/email_updated.text.erb +++ b/app/views/mailers/contact_mailer/email_updated.text.erb @@ -1,7 +1,7 @@ Tere <%= @contact.name %> Kontakti <%= @contact.name %> eposti aadress on muudetud -endine aadress: <%= @contact.email_was %> +endine aadress: <%= @old_email %> uus aadress: <%= @contact.email %> Eposti aadressile saadetakse domeenidega seotud infot seal hulgas kinnitustaotluseid omaniku vahetuse ja domeeni kustutamise korral. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduga oma registripidaja poole. Teie registripidaja on <%= @contact.registrar.name %> @@ -30,7 +30,7 @@ Eesti Interneti SA Hi <%= @contact.name %> E-mail address of <%= @contact.name %> has been changed -previous address: <%= @contact.email_was %> +previous address: <%= @old_email %> new address: <%= @contact.email %> E-mail addresses are used to send important information regarding your registered domains including applications for approval of registrant change and domain deletion. Please make sure that the update and contact information are correct. Incase of problems please turn to your registrar. Your registrar is <%= @contact.registrar.name %> diff --git a/db/migrate/20151124200353_add_ident_autofill.rb b/db/migrate/20151124200353_add_ident_autofill.rb index d4efb1449..8065bbc0a 100644 --- a/db/migrate/20151124200353_add_ident_autofill.rb +++ b/db/migrate/20151124200353_add_ident_autofill.rb @@ -45,12 +45,15 @@ class AddIdentAutofill < ActiveRecord::Migration END LOOP; mod := (total % 11); END IF; - - IF (mod < 10 AND substring(r.ident, 11, 1) = to_char(mod, 'FM999MI')) + IF (mod = 10) + THEN + mod := 0; + END IF; + IF (substring(r.ident, 11, 1) = to_char(mod, 'FM999MI')) THEN UPDATE contacts SET ident_country_code = 'EE' WHERE id = r.id; END IF; - total = 0; + total := 0; END IF; END LOOP; @@ -66,7 +69,7 @@ class AddIdentAutofill < ActiveRecord::Migration counter := (counter + 1); END LOOP; mod := total % 11; - total = 0; + total := 0; counter := 1; IF (mod >= 10) THEN @@ -78,7 +81,11 @@ class AddIdentAutofill < ActiveRecord::Migration END LOOP; mod := (total % 11); END IF; - IF (mod < 10 AND (substring(r.ident, 8, 1) = to_char(mod, 'FM999MI'))) + IF (mod = 10) + THEN + mod := 0; + END IF; + IF (substring(r.ident, 8, 1) = to_char(mod, 'FM999MI')) THEN UPDATE contacts SET ident_country_code = 'EE' WHERE id = r.id; END IF; diff --git a/lib/tasks/import.rake b/lib/tasks/import.rake index 64aa9688c..1573848f1 100644 --- a/lib/tasks/import.rake +++ b/lib/tasks/import.rake @@ -250,7 +250,12 @@ namespace :import do next if existing_contact_ids.include?(x.id) count += 1 - name = x.name.try(:strip).presence || x.organization.try(:strip).presence + if 4 == x.ssntype + name = x.organization.try(:strip).presence || x.name.try(:strip).presence + else + name = x.name.try(:strip).presence || x.organization.try(:strip).presence + end + begin contacts << [ x.object_registry.name.try(:strip), @@ -262,7 +267,7 @@ namespace :import do x.ssn.try(:strip), ident_type_map[x.ssntype], x.object.authinfopw.try(:strip), - x.organization.try(:strip)? x.organization.try(:strip): name, + name, Registrar.find_by(legacy_id: x.object.try(:clid)).try(:id), x.object_registry.try(:registrar).try(:name), x.object.try(:registrar).try(:name) ? x.object.try(:registrar).try(:name) : x.object_registry.try(:registrar).try(:name), diff --git a/spec/mailers/domain_mailer_spec.rb b/spec/mailers/domain_mailer_spec.rb index 37605a668..3f645f7e0 100644 --- a/spec/mailers/domain_mailer_spec.rb +++ b/spec/mailers/domain_mailer_spec.rb @@ -9,7 +9,7 @@ describe DomainMailer do before :all do @registrant = Fabricate(:registrant, email: 'test@example.com') @domain = Fabricate(:domain, registrant: @registrant) - @mail = DomainMailer.pending_update_request_for_old_registrant(@domain.id, deliver_emails) + @mail = DomainMailer.pending_update_request_for_old_registrant(@domain.id, @registrant.id,deliver_emails) end it 'should not render email subject' do @@ -38,7 +38,7 @@ describe DomainMailer do @domain.registrant_verification_token = '123' @domain.registrant_verification_asked_at = Time.zone.now @domain.registrant = @new_registrant - @mail = DomainMailer.pending_update_request_for_old_registrant(@domain.id, deliver_emails) + @mail = DomainMailer.pending_update_request_for_old_registrant(@domain.id, @registrant.id, deliver_emails) end it 'should render email subject' do @@ -71,7 +71,7 @@ describe DomainMailer do @domain.registrant_verification_token = '123' @domain.registrant_verification_asked_at = Time.zone.now @domain.registrant = @new_registrant - @mail = DomainMailer.pending_update_notification_for_new_registrant(@domain.id, deliver_emails) + @mail = DomainMailer.pending_update_notification_for_new_registrant(@domain.id, @registrant.id, deliver_emails) end it 'should render email subject' do @@ -100,7 +100,7 @@ describe DomainMailer do @domain.registrant_verification_token = '123' @domain.registrant_verification_asked_at = Time.zone.now @domain.registrant = @new_registrant - @mail = DomainMailer.pending_update_notification_for_new_registrant(@domain.id, deliver_emails) + @mail = DomainMailer.pending_update_notification_for_new_registrant(@domain.id, @registrant.id, deliver_emails) end it 'should render email subject' do @@ -202,7 +202,7 @@ describe DomainMailer do before :all do @registrant = Fabricate(:registrant, email: 'test@example.com') @domain = Fabricate(:domain, registrant: @registrant) - @mail = DomainMailer.pending_deleted(@domain.id, deliver_emails) + @mail = DomainMailer.pending_deleted(@domain.id, @registrant.id, deliver_emails) end it 'should not render email subject' do @@ -229,7 +229,7 @@ describe DomainMailer do @domain.deliver_emails = true @domain.registrant_verification_token = '123' @domain.registrant_verification_asked_at = Time.zone.now - @mail = DomainMailer.pending_deleted(@domain.id, deliver_emails) + @mail = DomainMailer.pending_deleted(@domain.id, @registrant.id, deliver_emails) end it 'should render email subject' do