Skip to content

Commit

Permalink
Include user auth providers to find duplicate accounts
Browse files Browse the repository at this point in the history
  • Loading branch information
BryanHouston committed Sep 19, 2016
1 parent 1828dd1 commit 5518b91
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 8 deletions.
21 changes: 13 additions & 8 deletions lib/tasks/find_duplicate_accounts.rake
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ task :find_duplicate_accounts => [:environment] do
'Email Address(es)',
'User ID',
'Applications',
'Authentications',
'Signup Successful?',
'Reset Password Help Requested?',
'Help Request Failed?',
Expand All @@ -26,6 +27,7 @@ task :find_duplicate_accounts => [:environment] do
(user.contact_infos.any? ? user.contact_infos.map{ |ci| "#{ci.value} #{ci.verified ? '(verified)' : '(NOT verified)'}" }.join(", ") : ""),
user.id,
(user.applications.any? ? ( user.applications.map(&:name).join(", ") ) : ""),
(user.authentications.any? ? user.authentications.map(&:display_name).join(", ") : ""),
sign_up_successful(user),
help_requested(user),
help_request_failed(user),
Expand All @@ -42,6 +44,7 @@ task :find_duplicate_accounts => [:environment] do
'User Last Name',
'User ID',
'Applications',
'Authentications',
'Signup Successful?',
'Reset Password Help Requested?',
'Help Request Failed?',
Expand All @@ -53,18 +56,20 @@ task :find_duplicate_accounts => [:environment] do
}.joins{ user.outer }.preload(:user).uniq

where_email_addresses_match.find_each do |contact_info|
user = contact_info.user
csv << [
"#{contact_info.value} #{contact_info.verified ? '(verified)' : '(NOT verified)'}",
contact_info.created_at.to_s,
contact_info.id,
contact_info.user.try(:first_name),
contact_info.user.try(:last_name),
contact_info.user.try(:id),
(contact_info.user && contact_info.user.applications.any?) ? contact_info.user.applications.map(&:name).join(", ") : "",
sign_up_successful(contact_info.user),
help_requested(contact_info.user),
help_request_failed(contact_info.user),
authentication_transfer_failed(contact_info.user)
user.try(:first_name),
user.try(:last_name),
user.try(:id),
(user && user.applications.any?) ? user.applications.map(&:name).join(", ") : "",
(user && user.authentications.any?) ? user.authentications.map(&:display_name).join(", ") : "",
sign_up_successful(user),
help_requested(user),
help_request_failed(user),
authentication_transfer_failed(user)
]
end
end
Expand Down
9 changes: 9 additions & 0 deletions spec/lib/tasks/find_duplicate_accounts_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@
let!(:email_2_user_1) {FactoryGirl.create :email_address, user: user_1, verified: true}
let!(:email_1_user_same_name) {FactoryGirl.create :email_address, user: same_name, verified: true}

let!(:authentications_1) {FactoryGirl.create :authentication, user: user_1, provider: "google"}
let!(:authentications_2) {FactoryGirl.create :authentication, user: user_1, provider: "facebook"}

let!(:sus_user_1) {FactoryGirl.create :security_log, event_type: :sign_up_successful, user: user_1}
let!(:help_req_1_user_1) {FactoryGirl.create :security_log, event_type: :help_requested, user: user_1}
let!(:help_req_2_user_1) {FactoryGirl.create :security_log, event_type: :help_requested, user: user_1}
Expand All @@ -48,6 +51,7 @@
expect(result[0]["Help Request Failed?"]).to eq "On #{help_req_fail_user_1.created_at}"
expect(result[0]["Authentication Transfer Failed?"]).to be_empty
expect(result[0]["Applications"]).to eq "#{user_1.applications.first.name}, #{user_1.applications.second.name}"
expect(result[0]["Authentications"]).to eq "Facebook, Google"


expect(result[1]["User First Name"]).to eq same_name.first_name
Expand All @@ -60,6 +64,7 @@
expect(result[1]["Help Request Failed?"]).to be_empty
expect(result[1]["Authentication Transfer Failed?"]).to eq "On #{auth_transfer_fail_user_same_name.created_at}"
expect(result[1]["Applications"]).to be_empty
expect(result[1]["Authentications"]).to be_empty
end
end

Expand All @@ -83,6 +88,8 @@
let!(:email_1) { FactoryGirl.create :email_address, user: user_1, verified: true }
let!(:same_email_diff_user) { FactoryGirl.create :email_address, user: user_2, value: email_1.value }

let!(:authentications) {FactoryGirl.create :authentication, user: user_1, provider: "facebook"}

let!(:cool) { FactoryGirl.create :user }
let!(:person) { FactoryGirl.create :user }

Expand Down Expand Up @@ -115,6 +122,7 @@
expect(result[0]["Reset Password Help Requested?"]).to eq "On #{help_req_1_user_1.created_at} and On #{help_req_2_user_1.created_at}"
expect(result[0]["Help Request Failed?"]).to eq "On #{help_req_fail_user_1.created_at}"
expect(result[0]["Authentication Transfer Failed?"]).to be_empty
expect(result[0]["Authentications"]).to eq "Facebook"

expect(result[1]["Email Address"]).to eq "#{same_email_diff_user.value} (NOT verified)"
expect(result[1]["Created At"]).to eq email_1.created_at.to_s
Expand All @@ -127,6 +135,7 @@
expect(result[1]["Reset Password Help Requested?"]).to be_empty
expect(result[1]["Help Request Failed?"]).to be_empty
expect(result[1]["Authentication Transfer Failed?"]).to eq "On #{auth_transfer_fail_user_2.created_at}"
expect(result[1]["Authentications"]).to be_empty
end
end

Expand Down

0 comments on commit 5518b91

Please sign in to comment.