diff options
author | 🙈 jacopo beschi 🙉 <intrip@gmail.com> | 2018-02-19 17:47:08 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2018-02-19 17:47:08 +0000 |
commit | 80090c8b06859ac23fec4b69c88a0e854ca2db8e (patch) | |
tree | d2384ac96dce71a9afc989c8e898a6b713a34f11 /app/services/notification_service.rb | |
parent | 9f06e3139803f0f20a0150bfe3ab13a06f2e3148 (diff) | |
download | gitlab-ce-80090c8b06859ac23fec4b69c88a0e854ca2db8e.tar.gz |
Resolve "group request membership mail with too long list of "To:""
Diffstat (limited to 'app/services/notification_service.rb')
-rw-r--r-- | app/services/notification_service.rb | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb index 8c84ccfcc92..56e941d90ff 100644 --- a/app/services/notification_service.rb +++ b/app/services/notification_service.rb @@ -208,7 +208,12 @@ class NotificationService def new_access_request(member) return true unless member.notifiable?(:subscription) - mailer.member_access_requested_email(member.real_source_type, member.id).deliver_later + recipients = member.source.members.owners_and_masters + if fallback_to_group_owners_masters?(recipients, member) + recipients = member.source.group.members.owners_and_masters + end + + recipients.each { |recipient| deliver_access_request_email(recipient, member) } end def decline_access_request(member) @@ -435,4 +440,14 @@ class NotificationService def notifiable_users(*args) NotificationRecipientService.notifiable_users(*args) end + + def deliver_access_request_email(recipient, member) + mailer.member_access_requested_email(member.real_source_type, member.id, recipient.user.notification_email).deliver_later + end + + def fallback_to_group_owners_masters?(recipients, member) + return false if recipients.present? + + member.source.respond_to?(:group) && member.source.group + end end |