mirror of
https://github.com/discourse/discourse.git
synced 2025-05-24 01:21:23 +08:00
Moderators can search users by ip address
This commit is contained in:
@ -576,7 +576,7 @@ en:
|
|||||||
created: 'Created'
|
created: 'Created'
|
||||||
created_lowercase: 'created'
|
created_lowercase: 'created'
|
||||||
trust_level: 'Trust Level'
|
trust_level: 'Trust Level'
|
||||||
search_hint: 'username'
|
search_hint: 'username or IP address'
|
||||||
search_hint_admin: 'username, email or IP address'
|
search_hint_admin: 'username, email or IP address'
|
||||||
|
|
||||||
create_account:
|
create_account:
|
||||||
|
@ -43,7 +43,11 @@ class AdminUserIndexQuery
|
|||||||
@query.where('username_lower ILIKE :filter OR email ILIKE :filter', filter: "%#{params[:filter]}%")
|
@query.where('username_lower ILIKE :filter OR email ILIKE :filter', filter: "%#{params[:filter]}%")
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@query.where('username_lower ILIKE :filter', filter: "%#{params[:filter]}%")
|
if params[:filter] =~ Resolv::IPv4::Regex || params[:filter] =~ Resolv::IPv6::Regex
|
||||||
|
@query.where('ip_address = :ip OR registration_ip_address = :ip', ip: params[:filter])
|
||||||
|
else
|
||||||
|
@query.where('username_lower ILIKE :filter', filter: "%#{params[:filter]}%")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -140,18 +140,9 @@ describe AdminUserIndexQuery do
|
|||||||
context "by ip address fragment" do
|
context "by ip address fragment" do
|
||||||
before(:each) { Fabricate(:user, ip_address: "117.207.94.9") }
|
before(:each) { Fabricate(:user, ip_address: "117.207.94.9") }
|
||||||
|
|
||||||
context "when authenticated as a non-admin user" do
|
it "matches the ip address" do
|
||||||
it "doesn't match the ip address" do
|
query = ::AdminUserIndexQuery.new({ filter: "117.207.94.9" })
|
||||||
query = ::AdminUserIndexQuery.new({ filter: "117.207.94.9" })
|
expect(query.find_users.count()).to eq(1)
|
||||||
expect(query.find_users.count()).to eq(0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "when authenticated as an admin user" do
|
|
||||||
it "matches the ip address" do
|
|
||||||
query = ::AdminUserIndexQuery.new({ filter: "117.207.94.9", admin: true })
|
|
||||||
expect(query.find_users.count()).to eq(1)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user