diff --git a/app/jobs/org_registrant_phone_checker_job.rb b/app/jobs/org_registrant_phone_checker_job.rb index 1d791acac5..4dcb837a65 100644 --- a/app/jobs/org_registrant_phone_checker_job.rb +++ b/app/jobs/org_registrant_phone_checker_job.rb @@ -54,9 +54,10 @@ def call_disclosure_action(is_phone_number_matching, contact) if is_phone_number_matching disclose_phone_number(contact) log("Phone number disclosed for registrant user #{contact.code}. Phone number: #{contact.phone}") - elsif contact.disclosed_attributes.include?('phone') + elsif contact.disclosed_attributes.include?('phone') || contact.system_disclosed_attributes.include?('phone') log("Removing phone number from disclosed attributes for registrant user #{contact.code}. Phone number: #{contact.phone}") contact.disclosed_attributes.delete('phone') + contact.system_disclosed_attributes.delete('phone') contact.save! else log("Phone number not disclosed for registrant user #{contact.code}. Phone number: #{contact.phone}") @@ -69,6 +70,7 @@ def log(message) def disclose_phone_number(contact) contact.disclosed_attributes << 'phone' + contact.system_disclosed_attributes << 'phone' contact.save! end diff --git a/db/migrate/20250627084536_add_system_disclosed_attributes_to_contact.rb b/db/migrate/20250627084536_add_system_disclosed_attributes_to_contact.rb new file mode 100644 index 0000000000..f77b5a7244 --- /dev/null +++ b/db/migrate/20250627084536_add_system_disclosed_attributes_to_contact.rb @@ -0,0 +1,5 @@ +class AddSystemDisclosedAttributesToContact < ActiveRecord::Migration[6.1] + def change + add_column :contacts, :system_disclosed_attributes, :string, array: true, default: [] + end +end diff --git a/db/structure.sql b/db/structure.sql index 02f8f6d61b..eb4a715bae 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -697,7 +697,8 @@ CREATE TABLE public.contacts ( company_register_status character varying, ident_request_sent_at timestamp without time zone, verified_at timestamp without time zone, - verification_id character varying + verification_id character varying, + system_disclosed_attributes character varying[] DEFAULT '{}'::character varying[] ); @@ -5728,6 +5729,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20250204094550'), ('20250219102811'), ('20250313122119'), -('20250319104749'); +('20250319104749'), +('20250627084536'); diff --git a/lib/serializers/registrant_api/contact.rb b/lib/serializers/registrant_api/contact.rb index 6f3aa03b98..d28a2c96e7 100644 --- a/lib/serializers/registrant_api/contact.rb +++ b/lib/serializers/registrant_api/contact.rb @@ -31,6 +31,7 @@ def to_json(_obj = nil) auth_info: contact.auth_info, statuses: contact.statuses, disclosed_attributes: contact.disclosed_attributes, + system_disclosed_attributes: contact.system_disclosed_attributes, registrant_publishable: contact.registrant_publishable, } diff --git a/test/integration/api/v1/registrant/contacts/details_test.rb b/test/integration/api/v1/registrant/contacts/details_test.rb index 66aecb28a0..08b4196218 100644 --- a/test/integration/api/v1/registrant/contacts/details_test.rb +++ b/test/integration/api/v1/registrant/contacts/details_test.rb @@ -39,7 +39,8 @@ def test_returns_contact_details auth_info: @contact.auth_info, statuses: @contact.statuses, disclosed_attributes: @contact.disclosed_attributes, - registrant_publishable: @contact.registrant_publishable }), + registrant_publishable: @contact.registrant_publishable, + system_disclosed_attributes: @contact.system_disclosed_attributes }), JSON.parse(response.body, symbolize_names: true) end