Email notification permissions #533

This commit is contained in:
Karel Picman 2016-06-10 09:33:01 +02:00
parent 9e937525af
commit 2fd955183d
2 changed files with 30 additions and 4 deletions

View File

@ -441,4 +441,15 @@ class DmsfFile < ActiveRecord::Base
end
end
def owner?(user)
self.last_revision && (self.last_revision.user == user)
end
def involved?(user)
self.dmsf_file_revisions.each do |file_revision|
return true if file_revision.user == user
end
false
end
end

View File

@ -88,8 +88,7 @@ class DmsfMailer < Mailer
notify_files = files.select { |file| file.notify? }
return [] if notify_files.empty?
end
notify_members = project.members
notify_members = notify_members.select do |notify_member|
notify_members = project.members.select do |notify_member|
notify_user = notify_member.user
if notify_user == User.current && notify_user.pref.no_self_notified
false
@ -100,8 +99,24 @@ class DmsfMailer < Mailer
true
when 'selected'
notify_member.mail_notification?
when 'only_my_events', 'only_owner'
notify_user.allowed_to?(:file_manipulation, project)
when 'only_my_events'
author = false
files.each do |file|
if file.involved?(notify_user)
author = true
break
end
end
author
when 'only_owner', 'only_assigned'
author = false
files.each do |file|
if file.owner?(notify_user)
author = true
break
end
end
author
else
false
end