From 1bd803d360e26f2351a40970d8243d6e1eba68a1 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Mon, 11 Mar 2024 15:19:37 +0530 Subject: [PATCH] FIX: store registration ip address when creating user via SSO (#26121) --- app/models/discourse_connect.rb | 1 + spec/models/discourse_connect_spec.rb | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/app/models/discourse_connect.rb b/app/models/discourse_connect.rb index 59b7e1f5981..c1e3f1c1a6b 100644 --- a/app/models/discourse_connect.rb +++ b/app/models/discourse_connect.rb @@ -256,6 +256,7 @@ class DiscourseConnect < DiscourseConnectBase name: resolve_name, username: resolve_username, ip_address: ip_address, + registration_ip_address: ip_address, } if SiteSetting.allow_user_locale && locale && LocaleSiteSetting.valid_value?(locale) diff --git a/spec/models/discourse_connect_spec.rb b/spec/models/discourse_connect_spec.rb index b43464ca845..0c05124a3c8 100644 --- a/spec/models/discourse_connect_spec.rb +++ b/spec/models/discourse_connect_spec.rb @@ -694,6 +694,26 @@ RSpec.describe DiscourseConnect do expect(user.username).to eq short_username end + it "stores registration ip address if it's present" do + sso = new_discourse_sso + sso.external_id = "100" + + sso.email = "mail@mail.com" + user = sso.lookup_or_create_user(ip_address) + + expect(user.registration_ip_address).to eq ip_address + end + + it "does not store registration ip address if it's not present" do + sso = new_discourse_sso + sso.external_id = "100" + + sso.email = "mail@mail.com" + user = sso.lookup_or_create_user(nil) + + expect(user.registration_ip_address).to eq nil + end + it "can fill in data on way back" do sso = make_sso