mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Allow IP anonymization via admin user controller API (#11497)
* FEATURE: Allow IP anonymization via admin user controller API Co-authored-by: Penar Musaraj <pmusaraj@gmail.com>
This commit is contained in:
parent
8922a878f3
commit
745a5d84d2
@ -489,7 +489,10 @@ class Admin::UsersController < Admin::AdminController
|
||||
|
||||
def anonymize
|
||||
guardian.ensure_can_anonymize_user!(@user)
|
||||
if user = UserAnonymizer.new(@user, current_user).make_anonymous
|
||||
opts = {}
|
||||
opts[:anonymize_ip] = params[:anonymize_ip] if params[:anonymize_ip].present?
|
||||
|
||||
if user = UserAnonymizer.new(@user, current_user, opts).make_anonymous
|
||||
render json: success_json.merge(username: user.username)
|
||||
else
|
||||
render json: failed_json.merge(user: AdminDetailedUserSerializer.new(user, root: false).as_json)
|
||||
|
@ -1103,4 +1103,21 @@ RSpec.describe Admin::UsersController do
|
||||
end
|
||||
end
|
||||
|
||||
describe "#anonymize" do
|
||||
it "will make the user anonymous" do
|
||||
put "/admin/users/#{user.id}/anonymize.json"
|
||||
expect(response.status).to eq(200)
|
||||
expect(response.parsed_body['username']).to be_present
|
||||
end
|
||||
|
||||
it "supports `anonymize_ip`" do
|
||||
Jobs.run_immediately!
|
||||
sl = Fabricate(:search_log, user_id: user.id)
|
||||
put "/admin/users/#{user.id}/anonymize.json?anonymize_ip=127.0.0.2"
|
||||
expect(response.status).to eq(200)
|
||||
expect(response.parsed_body['username']).to be_present
|
||||
expect(sl.reload.ip_address).to eq('127.0.0.2')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user