From 2d75d6d5eac44f7d145b95171f655658b0b5bb98 Mon Sep 17 00:00:00 2001 From: Ben Halpern Date: Thu, 22 Oct 2020 19:21:03 -0400 Subject: [PATCH] Fix missing registration data change (#11008) * Fix missing registration acknowledgment * Add backfill script and seeds adjustment * Update lib/data_update_scripts/20201022161311_backfill_user_registrations_in_registrations_controller_path.rb Co-authored-by: Molly Struve Co-authored-by: Molly Struve --- app/controllers/registrations_controller.rb | 2 ++ db/seeds.rb | 2 ++ ..._registrations_in_registrations_controller_path.rb | 10 ++++++++++ spec/requests/registrations_spec.rb | 11 +++++++++++ 4 files changed, 25 insertions(+) create mode 100644 lib/data_update_scripts/20201022161311_backfill_user_registrations_in_registrations_controller_path.rb diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb index ffa9b9df5..5d53d8fd8 100644 --- a/app/controllers/registrations_controller.rb +++ b/app/controllers/registrations_controller.rb @@ -22,6 +22,8 @@ class RegistrationsController < Devise::RegistrationsController if recaptcha_disabled? || recaptcha_verified? build_resource(sign_up_params) resource.saw_onboarding = false + resource.registered = true + resource.registered_at = Time.current resource.editor_version = "v2" resource.save if resource.email.present? yield resource if block_given? diff --git a/db/seeds.rb b/db/seeds.rb index 1c9cfabd8..ff4cd1d86 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -94,6 +94,8 @@ users_in_random_order = seeder.create_if_none(User, num_users) do # Emails limited to 50 characters email: Faker::Internet.email(name: name, separators: "+", domain: Faker::Internet.domain_word.first(20)), confirmed_at: Time.current, + registered_at: Time.current, + registered: true, password: "password", password_confirmation: "password", ) diff --git a/lib/data_update_scripts/20201022161311_backfill_user_registrations_in_registrations_controller_path.rb b/lib/data_update_scripts/20201022161311_backfill_user_registrations_in_registrations_controller_path.rb new file mode 100644 index 000000000..01d88e77c --- /dev/null +++ b/lib/data_update_scripts/20201022161311_backfill_user_registrations_in_registrations_controller_path.rb @@ -0,0 +1,10 @@ +module DataUpdateScripts + class BackfillUserRegistrationsInRegistrationsControllerPath + def run + # Users who _were not invited_ should by definition have registered already in order to exist + User.where(registered_at: nil, invitation_sent_at: nil).find_each do |user| + user.update_columns(registered_at: user.created_at, registered: true) + end + end + end +end diff --git a/spec/requests/registrations_spec.rb b/spec/requests/registrations_spec.rb index 58c51bc21..d31b9c7c8 100644 --- a/spec/requests/registrations_spec.rb +++ b/spec/requests/registrations_spec.rb @@ -179,6 +179,17 @@ RSpec.describe "Registrations", type: :request do expect(User.all.size).to be 1 end + it "marks as registerd" do + post "/users", params: + { user: { name: "test #{rand(10)}", + username: "haha_#{rand(10)}", + email: "yoooo#{rand(100)}@yo.co", + password: "PaSSw0rd_yo000", + password_confirmation: "PaSSw0rd_yo000" } } + expect(User.last.registered).to be true + expect(User.last.registered_at).not_to be nil + end + it "does not create user with password confirmation mismatch" do post "/users", params: { user: { name: "test #{rand(100)}",