summaryrefslogtreecommitdiffstats
path: root/app/models/user.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/user.rb')
-rw-r--r--app/models/user.rb44
1 files changed, 16 insertions, 28 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index a4e1fe47e..361b994cc 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -563,38 +563,26 @@ class User < Principal
#
# TODO: only supports Issue events currently
def notify_about?(object)
- case mail_notification
- when 'all'
+ if mail_notification == 'all'
true
- when 'selected'
- # user receives notifications for created/assigned issues on unselected projects
- if object.is_a?(Issue) && (object.author == self || is_or_belongs_to?(object.assigned_to) || is_or_belongs_to?(object.assigned_to_was))
- true
- else
- false
- end
- when 'none'
+ elsif mail_notification.blank? || mail_notification == 'none'
false
- when 'only_my_events'
- if object.is_a?(Issue) && (object.author == self || is_or_belongs_to?(object.assigned_to) || is_or_belongs_to?(object.assigned_to_was))
- true
- else
- false
- end
- when 'only_assigned'
- if object.is_a?(Issue) && (is_or_belongs_to?(object.assigned_to) || is_or_belongs_to?(object.assigned_to_was))
- true
- else
- false
- end
- when 'only_owner'
- if object.is_a?(Issue) && object.author == self
+ else
+ case object
+ when Issue
+ case mail_notification
+ when 'selected', 'only_my_events'
+ # user receives notifications for created/assigned issues on unselected projects
+ object.author == self || is_or_belongs_to?(object.assigned_to) || is_or_belongs_to?(object.assigned_to_was)
+ when 'only_assigned'
+ is_or_belongs_to?(object.assigned_to) || is_or_belongs_to?(object.assigned_to_was)
+ when 'only_owner'
+ object.author == self
+ end
+ when News
+ # always send to project members except when mail_notification is set to 'none'
true
- else
- false
end
- else
- false
end
end