From 07c2d58554ef3153d896544440062b623c8a3c7e Mon Sep 17 00:00:00 2001 From: Matt Farnsworth Date: Thu, 12 Nov 2015 10:54:31 +0200 Subject: [PATCH 1/4] Story #105839906 - remove duplication information and dependancy on pending_json[domain] from PaperTrail.changes, containing copy of pending_json[frame] --- app/models/domain.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index 7b744b03c..d3bdc2ac2 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -422,7 +422,6 @@ class Domain < ActiveRecord::Base pending_json_cache = pending_json token = registrant_verification_token asked_at = registrant_verification_asked_at - changes_cache = changes new_registrant_id = registrant.id new_registrant_email = registrant.email new_registrant_name = registrant.name @@ -436,7 +435,6 @@ class Domain < ActiveRecord::Base self.registrant_verification_token = token self.registrant_verification_asked_at = asked_at set_pending_update - pending_json['domain'] = changes_cache pending_json['new_registrant_id'] = new_registrant_id pending_json['new_registrant_email'] = new_registrant_email pending_json['new_registrant_name'] = new_registrant_name @@ -562,8 +560,8 @@ class Domain < ActiveRecord::Base def pending_registrant return '' if pending_json.blank? - return '' if pending_json['domain']['registrant_id'].blank? - Registrant.find_by(id: pending_json['domain']['registrant_id'].last) + return '' if pending_json['new_registrant_id'].blank? + Registrant.find_by(id: pending_json['new_registrant_id'].last) end def generate_auth_info From c0960e9184183f5cbd058deaf6389f2065a51628 Mon Sep 17 00:00:00 2001 From: Matt Farnsworth Date: Tue, 17 Nov 2015 12:09:16 +0200 Subject: [PATCH 2/4] Story #105839906 -- drop Version and log_legal_documents from legal_documents --- app/models/concerns/version_creator.rb | 33 +++++++++++++++++++ app/models/legal_document.rb | 3 +- ...20151117081204_drop_log_legal_documents.rb | 12 +++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 app/models/concerns/version_creator.rb create mode 100644 db/migrate/20151117081204_drop_log_legal_documents.rb diff --git a/app/models/concerns/version_creator.rb b/app/models/concerns/version_creator.rb new file mode 100644 index 000000000..45a1c424a --- /dev/null +++ b/app/models/concerns/version_creator.rb @@ -0,0 +1,33 @@ +module VersionCreator + extend ActiveSupport::Concern + + included do + before_create :add_creator + + def add_creator + self.creator_str = ::PaperTrail.whodunnit + true + end + + def add_updator + self.updator_str = ::PaperTrail.whodunnit + true + end + + # returns a user object for a reference + def creator + return nil if creator_str.blank? + + if creator_str =~ /^\d+-AdminUser:/ + creator = AdminUser.find_by(id: creator_str) + elsif creator_str =~ /^\d+-ApiUser:/ + creator = ApiUser.find_by(id: creator_str) + elsif creator_str =~ /^\d+-api-/ # depricated + creator = ApiUser.find_by(id: creator_str) + end + + creator.present? ? creator : creator_str + end + end + +end \ No newline at end of file diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index f1a63e976..49c0b2730 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -1,5 +1,6 @@ class LegalDocument < ActiveRecord::Base - include Versions # version/legal_document_version.rb + extend VersionCreator + belongs_to :documentable, polymorphic: true if ENV['legal_document_types'].present? diff --git a/db/migrate/20151117081204_drop_log_legal_documents.rb b/db/migrate/20151117081204_drop_log_legal_documents.rb new file mode 100644 index 000000000..45802ea0e --- /dev/null +++ b/db/migrate/20151117081204_drop_log_legal_documents.rb @@ -0,0 +1,12 @@ +class DropLogLegalDocuments < ActiveRecord::Migration + def up + drop_table :log_legal_documents + remove_column :legal_documents, :updated_at + remove_column :legal_documents, :updator_str + end + + def down + # removed concern Version, which removed LegalDocumentVersion + fail ActiveRecord::IrreversibleMigration + end +end From 3f17f728eb9c475887bd6eec7f95e6cb020216ee Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 17 Nov 2015 14:44:10 +0200 Subject: [PATCH 3/4] Stroy#105839906 more cleanup to remove legal_documents_versions + some code reading-refactorings --- app/models/concerns/version_creator.rb | 33 ------------------- app/models/legal_document.rb | 19 +++++++---- app/models/version/legal_document_version.rb | 5 --- ...20151117081204_drop_log_legal_documents.rb | 3 +- 4 files changed, 14 insertions(+), 46 deletions(-) delete mode 100644 app/models/concerns/version_creator.rb delete mode 100644 app/models/version/legal_document_version.rb diff --git a/app/models/concerns/version_creator.rb b/app/models/concerns/version_creator.rb deleted file mode 100644 index 45a1c424a..000000000 --- a/app/models/concerns/version_creator.rb +++ /dev/null @@ -1,33 +0,0 @@ -module VersionCreator - extend ActiveSupport::Concern - - included do - before_create :add_creator - - def add_creator - self.creator_str = ::PaperTrail.whodunnit - true - end - - def add_updator - self.updator_str = ::PaperTrail.whodunnit - true - end - - # returns a user object for a reference - def creator - return nil if creator_str.blank? - - if creator_str =~ /^\d+-AdminUser:/ - creator = AdminUser.find_by(id: creator_str) - elsif creator_str =~ /^\d+-ApiUser:/ - creator = ApiUser.find_by(id: creator_str) - elsif creator_str =~ /^\d+-api-/ # depricated - creator = ApiUser.find_by(id: creator_str) - end - - creator.present? ? creator : creator_str - end - end - -end \ No newline at end of file diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index 49c0b2730..f9d4cb4eb 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -1,17 +1,19 @@ class LegalDocument < ActiveRecord::Base - extend VersionCreator - - belongs_to :documentable, polymorphic: true - if ENV['legal_document_types'].present? TYPES = ENV['legal_document_types'].split(',').map(&:strip) else - TYPES = %w(pdf bdoc ddoc zip rar gz tar 7z odt doc docx) + TYPES = %w(pdf bdoc ddoc zip rar gz tar 7z odt doc docx).freeze end attr_accessor :body - before_save :save_to_filesystem + belongs_to :documentable, polymorphic: true + + before_create :add_creator + before_save :save_to_filesystem + + + def save_to_filesystem loop do rand = SecureRandom.random_number.to_s.last(4) @@ -26,4 +28,9 @@ class LegalDocument < ActiveRecord::Base File.open(path, 'wb') { |f| f.write(Base64.decode64(body)) } unless Rails.env.test? self.path = path end + + def add_creator + self.creator_str = ::PaperTrail.whodunnit + true + end end diff --git a/app/models/version/legal_document_version.rb b/app/models/version/legal_document_version.rb deleted file mode 100644 index d812b9720..000000000 --- a/app/models/version/legal_document_version.rb +++ /dev/null @@ -1,5 +0,0 @@ -class LegalDocumentVersion < PaperTrail::Version - include VersionSession - self.table_name = :log_legal_documents - self.sequence_name = :log_legal_documents_id_seq -end diff --git a/db/migrate/20151117081204_drop_log_legal_documents.rb b/db/migrate/20151117081204_drop_log_legal_documents.rb index 45802ea0e..2746a5d11 100644 --- a/db/migrate/20151117081204_drop_log_legal_documents.rb +++ b/db/migrate/20151117081204_drop_log_legal_documents.rb @@ -6,7 +6,6 @@ class DropLogLegalDocuments < ActiveRecord::Migration end def down - # removed concern Version, which removed LegalDocumentVersion - fail ActiveRecord::IrreversibleMigration + # we don't want it back end end From 01a9ade5c046c368dbdb69d903cebf18fbfaedfc Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Tue, 17 Nov 2015 14:46:21 +0200 Subject: [PATCH 4/4] Stroy#105839906 domain log saves under children_log only ids, not whole objects --- app/models/domain.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index d3bdc2ac2..19b987eb4 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -753,11 +753,11 @@ class Domain < ActiveRecord::Base def children_log log = HashWithIndifferentAccess.new - log[:admin_contacts] = admin_contacts.map(&:attributes) - log[:tech_contacts] = tech_contacts.map(&:attributes) - log[:nameservers] = nameservers.map(&:attributes) - log[:registrant] = [registrant.try(:attributes)] - log[:domain_statuses] = domain_statuses.map(&:attributes) + log[:admin_contacts] = admin_contact_ids + log[:tech_contacts] = tech_contact_ids + log[:nameservers] = nameserver_ids + log[:registrant] = [registrant_id] + log[:domain_statuses] = domain_status_ids log end