|
|
|
@ -645,6 +645,7 @@ class User < Principal
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Return true if the user is allowed to do the specified action on a specific context
|
|
|
|
|
# Action can be:
|
|
|
|
|
# * a parameter-like Hash (eg. :controller => 'projects', :action => 'edit')
|
|
|
|
@ -748,7 +749,36 @@ class User < Principal
|
|
|
|
|
when News
|
|
|
|
|
# always send to project members except when mail_notification is set to 'none'
|
|
|
|
|
true
|
|
|
|
|
#判定用户是否接受留言提醒邮件
|
|
|
|
|
when JournalsForMessage
|
|
|
|
|
##如果是直接留言并且留言对象是Project并且Project类型是课程(课程留言)
|
|
|
|
|
if !object.at_user && object.jour.class.to_s.to_sym == :Project && object.jour.project_type == 1
|
|
|
|
|
#根据用户设置邮件接收模式判定当前用户是否接受邮件提醒
|
|
|
|
|
is_notified_project object.jour
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#用户是否接收project的消息提醒
|
|
|
|
|
def is_notified_project arg
|
|
|
|
|
if arg.is_a?(Project)
|
|
|
|
|
case mail_notification
|
|
|
|
|
when 'selected'
|
|
|
|
|
notified_projects_ids.include?(arg.id)
|
|
|
|
|
when 'only_my_events'
|
|
|
|
|
projects.include?(arg)
|
|
|
|
|
when 'only_assigned'
|
|
|
|
|
false
|
|
|
|
|
when 'only_owner'
|
|
|
|
|
course = Course.find_by_extra(arg.identifier)
|
|
|
|
|
course.teacher == self
|
|
|
|
|
end
|
|
|
|
|
#勾选的项目或用户的项目 TODO:需改
|
|
|
|
|
#notified_projects_ids.include?(arg) || projects.include?(arg)
|
|
|
|
|
else
|
|
|
|
|
false
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|