Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2019-07-23 17:09:28 +0300
committerNick Thomas <nick@gitlab.com>2019-07-23 17:09:28 +0300
commitc404c57fb8b5a6ca174e6fccb25cf057549a7a6f (patch)
tree9c1f298b64edb362b4c13d9e0754e08921e3e82e /app/models
parent6ee5f089a72c309827aac768c94e79481bc19b5f (diff)
parent40d6d5e2d0123f1417bb5d3d1ead47bd525f8dac (diff)
Merge branch '63485-fix-pipeline-emails-to-use-group-setting' into 'master'
Make pipeline emails respect group email setting Closes #63485 See merge request gitlab-org/gitlab-ce!30907
Diffstat (limited to 'app/models')
-rw-r--r--app/models/group.rb6
-rw-r--r--app/models/user.rb5
2 files changed, 11 insertions, 0 deletions
diff --git a/app/models/group.rb b/app/models/group.rb
index 37f30552b39..26ce2957e9b 100644
--- a/app/models/group.rb
+++ b/app/models/group.rb
@@ -144,6 +144,12 @@ class Group < Namespace
notification_settings(hierarchy_order: hierarchy_order).where(user: user)
end
+ def notification_email_for(user)
+ # Finds the closest notification_setting with a `notification_email`
+ notification_settings = notification_settings_for(user, hierarchy_order: :asc)
+ notification_settings.find { |n| n.notification_email.present? }&.notification_email
+ end
+
def to_reference(_from = nil, full: nil)
"#{self.class.reference_prefix}#{full_path}"
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 0fd3daa3383..b439d1c0c16 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -1259,6 +1259,11 @@ class User < ApplicationRecord
end
end
+ def notification_email_for(notification_group)
+ # Return group-specific email address if present, otherwise return global notification email address
+ notification_group&.notification_email_for(self) || notification_email
+ end
+
def notification_settings_for(source)
if notification_settings.loaded?
notification_settings.find do |notification|