diff options
-rw-r--r-- | app/models/member.rb | 12 | ||||
-rw-r--r-- | app/models/members/group_member.rb | 4 | ||||
-rw-r--r-- | app/models/members/project_member.rb | 4 |
3 files changed, 14 insertions, 6 deletions
diff --git a/app/models/member.rb b/app/models/member.rb index b5f75c9bff0..57f85a9adaf 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -276,6 +276,14 @@ class Member < ActiveRecord::Base @notification_setting ||= user.notification_settings_for(source) end + def notifiable?(type, opts={}) + # always notify when there isn't a user yet + return true if user.blank? + + NotificationRecipientService.notifiable?(user, type, notifiable_options.merge(opts)) + end + + private def send_invite @@ -333,7 +341,7 @@ class Member < ActiveRecord::Base NotificationService.new end - def notifiable?(type, opts={}) - raise 'abstract' + def notifiable_options + {} end end diff --git a/app/models/members/group_member.rb b/app/models/members/group_member.rb index cf434ec070b..661e668dbf9 100644 --- a/app/models/members/group_member.rb +++ b/app/models/members/group_member.rb @@ -30,8 +30,8 @@ class GroupMember < Member 'Group' end - def notifiable?(type, opts={}) - NotificationRecipientService.notifiable?(user, type, { group: group }.merge(opts)) + def notifiable_options + { group: group } end private diff --git a/app/models/members/project_member.rb b/app/models/members/project_member.rb index 47e47caad82..b6f1dd272cd 100644 --- a/app/models/members/project_member.rb +++ b/app/models/members/project_member.rb @@ -87,8 +87,8 @@ class ProjectMember < Member project.owner == user end - def notifiable?(type, opts={}) - NotificationRecipientService.notifiable?(user, type, { project: project }.merge(opts)) + def notifiable_options + { project: project } end private |