summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/member.rb7
-rw-r--r--app/models/members/group_member.rb14
-rw-r--r--app/models/members/project_member.rb15
3 files changed, 26 insertions, 10 deletions
diff --git a/app/models/member.rb b/app/models/member.rb
index 9fc95ea00c3..2457eb2e1e6 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -449,4 +449,11 @@ class Member < ActiveRecord::Base
errors.add(:access_level, s_("should be higher than %{access} inherited membership from group %{group_name}") % error_parameters)
end
end
+
+ def skip_notification?
+ # In EE we want to disable the sending of notifications in certain
+ # scenarios. To allow this, we define this method in CE so EE can easily
+ # redefine it according to its needs.
+ false
+ end
end
diff --git a/app/models/members/group_member.rb b/app/models/members/group_member.rb
index fc49ee7ac8c..83cea8798db 100644
--- a/app/models/members/group_member.rb
+++ b/app/models/members/group_member.rb
@@ -39,19 +39,23 @@ class GroupMember < Member
private
def send_invite
- run_after_commit_or_now { notification_service.invite_group_member(self, @raw_invite_token) }
+ unless skip_notification?
+ run_after_commit_or_now { notification_service.invite_group_member(self, @raw_invite_token) }
+ end
super
end
def post_create_hook
- run_after_commit_or_now { notification_service.new_group_member(self) }
+ unless skip_notification?
+ run_after_commit_or_now { notification_service.new_group_member(self) }
+ end
super
end
def post_update_hook
- if access_level_changed?
+ if access_level_changed? && !skip_notification?
run_after_commit { notification_service.update_group_member(self) }
end
@@ -59,13 +63,13 @@ class GroupMember < Member
end
def after_accept_invite
- notification_service.accept_group_invite(self)
+ notification_service.accept_group_invite(self) unless skip_notification?
super
end
def after_decline_invite
- notification_service.decline_group_invite(self)
+ notification_service.decline_group_invite(self) unless skip_notification?
super
end
diff --git a/app/models/members/project_member.rb b/app/models/members/project_member.rb
index 537f2a3a231..d7125e8475a 100644
--- a/app/models/members/project_member.rb
+++ b/app/models/members/project_member.rb
@@ -94,7 +94,9 @@ class ProjectMember < Member
private
def send_invite
- run_after_commit_or_now { notification_service.invite_project_member(self, @raw_invite_token) }
+ unless skip_notification?
+ run_after_commit_or_now { notification_service.invite_project_member(self, @raw_invite_token) }
+ end
super
end
@@ -102,14 +104,17 @@ class ProjectMember < Member
def post_create_hook
unless owner?
event_service.join_project(self.project, self.user)
- run_after_commit_or_now { notification_service.new_project_member(self) }
+
+ unless skip_notification?
+ run_after_commit_or_now { notification_service.new_project_member(self) }
+ end
end
super
end
def post_update_hook
- if access_level_changed?
+ if access_level_changed? && !skip_notification?
run_after_commit { notification_service.update_project_member(self) }
end
@@ -127,13 +132,13 @@ class ProjectMember < Member
end
def after_accept_invite
- notification_service.accept_project_invite(self)
+ notification_service.accept_project_invite(self) unless skip_notification?
super
end
def after_decline_invite
- notification_service.decline_project_invite(self)
+ notification_service.decline_project_invite(self) unless skip_notification?
super
end