diff options
-rw-r--r-- | app/models/member.rb | 7 | ||||
-rw-r--r-- | app/models/members/group_member.rb | 14 | ||||
-rw-r--r-- | app/models/members/project_member.rb | 15 |
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 |