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:
-rw-r--r--app/models/notification_recipient.rb12
-rw-r--r--app/services/notification_recipient_service.rb3
-rw-r--r--app/services/notification_service.rb4
3 files changed, 13 insertions, 6 deletions
diff --git a/app/models/notification_recipient.rb b/app/models/notification_recipient.rb
index 0b2eee56ff8..96e8e32c644 100644
--- a/app/models/notification_recipient.rb
+++ b/app/models/notification_recipient.rb
@@ -1,14 +1,20 @@
class NotificationRecipient
attr_reader :user, :project, :type
- def initialize(user, project, type,
- custom_action: nil, target: nil, acting_user: nil, read_ability: nil)
- @project = project
+ def initialize(user, type,
+ custom_action: nil,
+ target: nil,
+ acting_user: nil,
+ read_ability: nil,
+ project: nil)
@custom_action = custom_action
@acting_user = acting_user
@read_ability = read_ability
@target = target
+ @project = project || @target&.project
@user = user
@type = type
+
+ raise ArgumentError, "Project is missing" if @project.nil?
end
def notification_setting
diff --git a/app/services/notification_recipient_service.rb b/app/services/notification_recipient_service.rb
index 6b4e97aaab4..0627cca9214 100644
--- a/app/services/notification_recipient_service.rb
+++ b/app/services/notification_recipient_service.rb
@@ -56,7 +56,8 @@ module NotificationRecipientService
end
def make_recipient(user, type)
- NotificationRecipient.new(user, project, type,
+ NotificationRecipient.new(user, type,
+ project: project,
custom_action: custom_action,
target: target,
acting_user: acting_user,
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb
index e9a67cac4d6..f5366b9ceab 100644
--- a/app/services/notification_service.rb
+++ b/app/services/notification_service.rb
@@ -272,7 +272,7 @@ class NotificationService
end
def project_was_moved(project, old_path_with_namespace)
- recipients = NotificationRecipientService.notifiable_users(project.team.members, project, :mention)
+ recipients = NotificationRecipientService.notifiable_users(project.team.members, :mention, project: project)
recipients.each do |recipient|
mailer.project_was_moved_email(
@@ -307,7 +307,7 @@ class NotificationService
return unless mailer.respond_to?(email_template)
recipients ||= NotificationRecipientService.notifiable_users(
- [pipeline.user], pipeline.project, :watch,
+ [pipeline.user], :watch,
custom_action: :"#{pipeline.status}_pipeline",
read_ability: :read_build,
target: pipeline