diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-09-28 22:06:20 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-09-28 22:06:32 +0000 |
commit | 15892d0271ce6e70fce3534ee12f649004ce148d (patch) | |
tree | 60af9ae90570e987d366db3b9102d9bea4985387 | |
parent | f5897da89ca63facbef54c23cff894f2bbe8e644 (diff) | |
download | gitlab-ce-15892d0271ce6e70fce3534ee12f649004ce148d.tar.gz |
Add latest changes from gitlab-org/security/gitlab@15-4-stable-ee
-rw-r--r-- | app/models/user.rb | 4 | ||||
-rw-r--r-- | lib/gitlab/hook_data/group_member_builder.rb | 2 | ||||
-rw-r--r-- | spec/lib/gitlab/hook_data/group_member_builder_spec.rb | 2 | ||||
-rw-r--r-- | spec/models/user_spec.rb | 19 |
4 files changed, 25 insertions, 2 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 8825c18ea48..3f07e1b1ec0 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -2159,6 +2159,10 @@ class User < ApplicationRecord (Date.current - created_at.to_date).to_i end + def webhook_email + public_email.presence || _('[REDACTED]') + end + protected # override, from Devise::Validatable diff --git a/lib/gitlab/hook_data/group_member_builder.rb b/lib/gitlab/hook_data/group_member_builder.rb index 2998550a4b5..d70885018e9 100644 --- a/lib/gitlab/hook_data/group_member_builder.rb +++ b/lib/gitlab/hook_data/group_member_builder.rb @@ -39,7 +39,7 @@ module Gitlab group_id: group_member.group.id, user_username: group_member.user.username, user_name: group_member.user.name, - user_email: group_member.user.email, + user_email: group_member.user.webhook_email, user_id: group_member.user.id, group_access: group_member.human_access, expires_at: group_member.expires_at&.xmlschema diff --git a/spec/lib/gitlab/hook_data/group_member_builder_spec.rb b/spec/lib/gitlab/hook_data/group_member_builder_spec.rb index 35ce31ab897..1551bdbaa9c 100644 --- a/spec/lib/gitlab/hook_data/group_member_builder_spec.rb +++ b/spec/lib/gitlab/hook_data/group_member_builder_spec.rb @@ -26,7 +26,7 @@ RSpec.describe Gitlab::HookData::GroupMemberBuilder do expect(data[:group_id]).to eq(group.id) expect(data[:user_username]).to eq(group_member.user.username) expect(data[:user_name]).to eq(group_member.user.name) - expect(data[:user_email]).to eq(group_member.user.email) + expect(data[:user_email]).to eq(group_member.user.webhook_email) expect(data[:user_id]).to eq(group_member.user.id) expect(data[:group_access]).to eq('Developer') expect(data[:created_at]).to eq(group_member.created_at&.xmlschema) diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 04f2c7f9176..3cc34681ad6 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -6866,6 +6866,25 @@ RSpec.describe User do end end + describe '#webhook_email' do + let(:user) { build(:user, public_email: nil) } + + context 'when public email is present' do + before do + user.public_email = "hello@hello.com" + end + it 'returns public email' do + expect(user.webhook_email).to eq(user.public_email) + end + end + + context 'when public email is nil' do + it 'returns [REDACTED]' do + expect(user.webhook_email).to eq(_('[REDACTED]')) + end + end + end + describe 'user credit card validation' do context 'when user is initialized' do let(:user) { build(:user) } |