DEV: maxmind license checking failing tests (#24534)

This improves the implementation of #18993

1. Error message displayed to user is clearer
2. open_db will also be called, even if license key is blank, as it was previously
3. This in turn means no need to keep stubbing 'maxmind_license_key'
This commit is contained in:
Sam 2023-11-24 09:38:46 +11:00 committed by GitHub
parent c58a41cb3e
commit 85d2b5fa48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 3 additions and 12 deletions

View File

@ -1078,7 +1078,7 @@ en:
confirm_delete_other_accounts: "Are you sure you want to delete these accounts?" confirm_delete_other_accounts: "Are you sure you want to delete these accounts?"
powered_by: "using <a href='https://maxmind.com'>MaxMindDB</a>" powered_by: "using <a href='https://maxmind.com'>MaxMindDB</a>"
copied: "copied" copied: "copied"
no_license: "Configure MaxMind to enable GeoIP information" no_license: "You must configure MaxMind to enable GeoIP information. This is configured using DISCOURSE_MAXMIND_LICENSE_KEY in your container config. If you are on a hosted Discourse service, contact your service provider."
user_fields: user_fields:
none: "(select an option)" none: "(select an option)"

View File

@ -11,10 +11,8 @@ class DiscourseIpInfo
end end
def open_db(path) def open_db(path)
unless GlobalSetting.maxmind_license_key.blank? @loc_mmdb = mmdb_load(File.join(path, "GeoLite2-City.mmdb"))
@loc_mmdb = mmdb_load(File.join(path, "GeoLite2-City.mmdb")) @asn_mmdb = mmdb_load(File.join(path, "GeoLite2-ASN.mmdb"))
@asn_mmdb = mmdb_load(File.join(path, "GeoLite2-ASN.mmdb"))
end
@cache = LruRedux::ThreadSafeCache.new(2000) @cache = LruRedux::ThreadSafeCache.new(2000)
end end

View File

@ -1153,8 +1153,6 @@ RSpec.describe Report do
freeze_time DateTime.parse("2017-03-01 12:00") freeze_time DateTime.parse("2017-03-01 12:00")
ip = [81, 2, 69, 142] ip = [81, 2, 69, 142]
# Assign a dummy MaxMind license key, which is now checked in open_db
global_setting "maxmind_license_key", "dummy"
DiscourseIpInfo.open_db(File.join(Rails.root, "spec", "fixtures", "mmdb")) DiscourseIpInfo.open_db(File.join(Rails.root, "spec", "fixtures", "mmdb"))
Resolv::DNS Resolv::DNS

View File

@ -1680,8 +1680,6 @@ RSpec.describe Admin::UsersController do
shared_examples "IP info retrieval possible" do shared_examples "IP info retrieval possible" do
it "retrieves IP info" do it "retrieves IP info" do
ip = "81.2.69.142" ip = "81.2.69.142"
# Assign a dummy MaxMind license key, which is now checked in open_db
global_setting "maxmind_license_key", "dummy"
DiscourseIpInfo.open_db(File.join(Rails.root, "spec", "fixtures", "mmdb")) DiscourseIpInfo.open_db(File.join(Rails.root, "spec", "fixtures", "mmdb"))
Resolv::DNS.any_instance.stubs(:getname).with(ip).returns("ip-81-2-69-142.example.com") Resolv::DNS.any_instance.stubs(:getname).with(ip).returns("ip-81-2-69-142.example.com")
@ -1719,8 +1717,6 @@ RSpec.describe Admin::UsersController do
it "prevents retrieval of IP info with a 404 response" do it "prevents retrieval of IP info with a 404 response" do
ip = "81.2.69.142" ip = "81.2.69.142"
# Assign a dummy MaxMind license key, which is now checked in open_db
global_setting "maxmind_license_key", "dummy"
DiscourseIpInfo.open_db(File.join(Rails.root, "spec", "fixtures", "mmdb")) DiscourseIpInfo.open_db(File.join(Rails.root, "spec", "fixtures", "mmdb"))
Resolv::DNS.any_instance.stubs(:getname).with(ip).returns("ip-81-2-69-142.example.com") Resolv::DNS.any_instance.stubs(:getname).with(ip).returns("ip-81-2-69-142.example.com")

View File

@ -4,7 +4,6 @@ RSpec.describe UserAuthTokenSerializer do
fab!(:user) { Fabricate(:moderator) } fab!(:user) { Fabricate(:moderator) }
let(:token) { UserAuthToken.generate!(user_id: user.id, client_ip: "2a02:ea00::", staff: true) } let(:token) { UserAuthToken.generate!(user_id: user.id, client_ip: "2a02:ea00::", staff: true) }
# Assign a dummy MaxMind license key, which is now checked in open_db # Assign a dummy MaxMind license key, which is now checked in open_db
global_setting "maxmind_license_key", "dummy"
before(:each) { DiscourseIpInfo.open_db(File.join(Rails.root, "spec", "fixtures", "mmdb")) } before(:each) { DiscourseIpInfo.open_db(File.join(Rails.root, "spec", "fixtures", "mmdb")) }