diff --git a/doc/user/compliance/audit_event_types.md b/doc/user/compliance/audit_event_types.md index fe2530c8bd4ad5fa4c1f19a43d979a69291aae75..b2ee7b3390fd769b7d1b3d8acb441ef6ec335af0 100644 --- a/doc/user/compliance/audit_event_types.md +++ b/doc/user/compliance/audit_event_types.md @@ -581,6 +581,7 @@ Audit event types belong to the following product categories. | [`user_admin_status_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65168) | Adds an audit event when a user is either made an administrator, or removed as an administrator | **{check-circle}** Yes | **{check-circle}** Yes | GitLab [14.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323905) | User | | [`user_auditor_status_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136456) | Adds an audit event when a user is either made an auditor, or removed as an auditor | **{check-circle}** Yes | **{check-circle}** Yes | GitLab [16.6](https://gitlab.com/gitlab-org/gitlab/-/issues/430235) | User | | [`user_email_address_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/2103) | Adds an audit event when a user updates their email address | **{check-circle}** Yes | **{check-circle}** Yes | GitLab [10.1](https://gitlab.com/gitlab-org/gitlab-ee/issues/1370) | User | +| [`user_name_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167484) | Event triggered on updating a user's name | **{check-circle}** Yes | **{check-circle}** Yes | GitLab [17.5](https://gitlab.com/gitlab-org/gitlab/-/issues/486532) | User | | [`user_profile_visiblity_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129149) | Triggered when user toggles private profile user setting | **{dotted-circle}** No | **{check-circle}** Yes | GitLab [16.3](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129149) | User | | [`user_username_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106086) | Event triggered on updating a user's username | **{check-circle}** Yes | **{check-circle}** Yes | GitLab [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369329) | User | diff --git a/ee/app/services/ee/users/update_service.rb b/ee/app/services/ee/users/update_service.rb index 2f7d64296ce186c80bcb2cc98ad98244a7c010ef..5795fe08ff3a92dbbe50fb0fb6fbe745f3b59830 100644 --- a/ee/app/services/ee/users/update_service.rb +++ b/ee/app/services/ee/users/update_service.rb @@ -31,6 +31,9 @@ def notify_success(user_exists) audit_changes(:username, as: 'username', event_type: 'user_username_updated') + audit_changes(:name, as: 'name', + event_type: 'user_name_updated') + audit_changes(:admin, as: 'admin status', event_type: 'user_admin_status_updated') diff --git a/ee/config/audit_events/types/user_name_updated.yml b/ee/config/audit_events/types/user_name_updated.yml new file mode 100644 index 0000000000000000000000000000000000000000..c91ec97bad80738592ced1ecb4c1d5ec9b485d32 --- /dev/null +++ b/ee/config/audit_events/types/user_name_updated.yml @@ -0,0 +1,9 @@ +name: user_name_updated +description: Event triggered on updating a user's name +introduced_by_issue: https://gitlab.com/gitlab-org/gitlab/-/issues/486532 +introduced_by_mr: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167484 +milestone: '17.5' +feature_category: user_profile +saved_to_database: true +streamed: true +scope: [User] diff --git a/ee/spec/services/ee/users/update_service_spec.rb b/ee/spec/services/ee/users/update_service_spec.rb index 7812e5506ffac94d5bf8f57013d88d3665c10054..568e52736c2daab540032c03b5091e810e634f31 100644 --- a/ee/spec/services/ee/users/update_service_spec.rb +++ b/ee/spec/services/ee/users/update_service_spec.rb @@ -169,6 +169,20 @@ expect(AuditEvent.last.present.action).to eq(expected_message) end end + + context 'updating name' do + it 'logs audit event' do + previous_name = user.name + new_name = 'my_new_name' + expected_message = "Changed name from #{previous_name} to #{new_name}" + + expect do + update_user_as_self(user, name: new_name) + end.to change { AuditEvent.count }.by(1) + + expect(AuditEvent.last.present.action).to eq(expected_message) + end + end end end