User.current cannot be used in asynchronous emails
This commit is contained in:
commit
b3ea5f49fb
@ -170,7 +170,7 @@ class DmsfController < ApplicationController
|
|||||||
if params[:email][:to].strip.blank?
|
if params[:email][:to].strip.blank?
|
||||||
flash[:errors] = l(:error_email_to_must_be_entered)
|
flash[:errors] = l(:error_email_to_must_be_entered)
|
||||||
else
|
else
|
||||||
DmsfMailer.deliver_send_documents(@project, params[:email].permit!)
|
DmsfMailer.deliver_send_documents(@project, params[:email].permit!, User.current)
|
||||||
File.delete(params[:email][:zipped_content])
|
File.delete(params[:email][:zipped_content])
|
||||||
flash[:notice] = l(:notice_email_sent, params[:email][:to])
|
flash[:notice] = l(:notice_email_sent, params[:email][:to])
|
||||||
end
|
end
|
||||||
|
|||||||
@ -25,8 +25,8 @@ class DmsfMailer < Mailer
|
|||||||
layout 'mailer'
|
layout 'mailer'
|
||||||
|
|
||||||
def self.deliver_files_updated(project, files)
|
def self.deliver_files_updated(project, files)
|
||||||
files = files.select { |file| file.notify? }
|
|
||||||
users = get_notify_users(project, files)
|
users = get_notify_users(project, files)
|
||||||
|
files = files.select { |file| file.notify? }
|
||||||
users.each do |user|
|
users.each do |user|
|
||||||
files_updated(user, project, files).deliver_later
|
files_updated(user, project, files).deliver_later
|
||||||
end
|
end
|
||||||
@ -39,6 +39,7 @@ class DmsfMailer < Mailer
|
|||||||
@files = files
|
@files = files
|
||||||
@project = project
|
@project = project
|
||||||
@author = files.first.last_revision.user if files.first.last_revision
|
@author = files.first.last_revision.user if files.first.last_revision
|
||||||
|
@author = User.anonymous unless @author
|
||||||
message_id project
|
message_id project
|
||||||
set_language_if_valid user.language
|
set_language_if_valid user.language
|
||||||
mail :to => user.mail, subject: "[#{@project.name} - #{l(:menu_dmsf)}] #{l(:text_email_doc_updated_subject)}"
|
mail :to => user.mail, subject: "[#{@project.name} - #{l(:menu_dmsf)}] #{l(:text_email_doc_updated_subject)}"
|
||||||
@ -46,8 +47,8 @@ class DmsfMailer < Mailer
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.deliver_files_deleted(project, files)
|
def self.deliver_files_deleted(project, files)
|
||||||
files = files.select { |file| file.notify? }
|
|
||||||
users = get_notify_users(project, files)
|
users = get_notify_users(project, files)
|
||||||
|
files = files.select { |file| file.notify? }
|
||||||
users.each do |user|
|
users.each do |user|
|
||||||
files_deleted(user, project, files).deliver_later
|
files_deleted(user, project, files).deliver_later
|
||||||
end
|
end
|
||||||
@ -60,6 +61,7 @@ class DmsfMailer < Mailer
|
|||||||
@files = files
|
@files = files
|
||||||
@project = project
|
@project = project
|
||||||
@author = files.first.deleted_by_user
|
@author = files.first.deleted_by_user
|
||||||
|
@author = User.anonymous unless @author
|
||||||
message_id project
|
message_id project
|
||||||
set_language_if_valid user.language
|
set_language_if_valid user.language
|
||||||
mail :to => user.mail,
|
mail :to => user.mail,
|
||||||
@ -67,11 +69,11 @@ class DmsfMailer < Mailer
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.deliver_send_documents(project, email_params)
|
def self.deliver_send_documents(project, email_params, author)
|
||||||
send_documents(User.current, project, email_params).deliver_now
|
send_documents(User.current, project, email_params, author).deliver_now
|
||||||
end
|
end
|
||||||
|
|
||||||
def send_documents(_, project, email_params)
|
def send_documents(_, project, email_params, author)
|
||||||
redmine_headers 'Project' => project.identifier if project
|
redmine_headers 'Project' => project.identifier if project
|
||||||
@body = email_params[:body]
|
@body = email_params[:body]
|
||||||
@links_only = email_params[:links_only] == '1'
|
@links_only = email_params[:links_only] == '1'
|
||||||
@ -79,7 +81,7 @@ class DmsfMailer < Mailer
|
|||||||
@expired_at = email_params[:expired_at]
|
@expired_at = email_params[:expired_at]
|
||||||
@folders = email_params[:folders]
|
@folders = email_params[:folders]
|
||||||
@files = email_params[:files]
|
@files = email_params[:files]
|
||||||
|
@author = author
|
||||||
unless @links_only
|
unless @links_only
|
||||||
zipped_content_data = open(email_params[:zipped_content], 'rb') { |io| io.read }
|
zipped_content_data = open(email_params[:zipped_content], 'rb') { |io| io.read }
|
||||||
attachments['Documents.zip'] = { :content_type => 'application/zip', :content => zipped_content_data }
|
attachments['Documents.zip'] = { :content_type => 'application/zip', :content => zipped_content_data }
|
||||||
@ -109,6 +111,7 @@ class DmsfMailer < Mailer
|
|||||||
@text2 = l(text2_id)
|
@text2 = l(text2_id)
|
||||||
@notice = notice
|
@notice = notice
|
||||||
@author = User.find_by(id: revision.dmsf_workflow_assigned_by)
|
@author = User.find_by(id: revision.dmsf_workflow_assigned_by)
|
||||||
|
@author = User.anonymous unless @author
|
||||||
mail :to => user.mail,
|
mail :to => user.mail,
|
||||||
:subject => "[#{@project.name} - #{l(:field_label_dmsf_workflow)}] #{@workflow.name} #{l(subject_id)}"
|
:subject => "[#{@project.name} - #{l(:field_label_dmsf_workflow)}] #{@workflow.name} #{l(subject_id)}"
|
||||||
end
|
end
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%>
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%>
|
||||||
|
|
||||||
<%= link_to User.current, user_url(User.current) %> <%= l(:text_email_doc_deleted) %>
|
<%= link_to @author, user_url(@author) %> <%= l(:text_email_doc_deleted) %>
|
||||||
<%= link_to @project, project_url(@project) %> <%= l(:text_email_doc_follows) %>
|
<%= link_to @project, project_url(@project) %> <%= l(:text_email_doc_follows) %>
|
||||||
<% @files.each do |file| %>
|
<% @files.each do |file| %>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%>
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%>
|
||||||
|
|
||||||
<%= User.current.name %> <%= l(:text_email_doc_deleted) %> <%= @project.name %> <%= l(:text_email_doc_follows) %>
|
<%= @author.name %> <%= l(:text_email_doc_deleted) %> <%= @project.name %> <%= l(:text_email_doc_follows) %>
|
||||||
<% @files.each do |file| %>
|
<% @files.each do |file| %>
|
||||||
<%= h(file.dmsf_path_str) %> (<%= file.name %>)
|
<%= h(file.dmsf_path_str) %> (<%= file.name %>)
|
||||||
<% if file.last_revision %>
|
<% if file.last_revision %>
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%>
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%>
|
||||||
|
|
||||||
<%= link_to User.current, user_url(User.current) %> <%= l(:text_email_doc_updated) %>
|
<%= link_to @author, user_url(@author) %> <%= l(:text_email_doc_updated) %>
|
||||||
<%= link_to @project, project_url(@project) %> <%= l(:text_email_doc_follows) %>
|
<%= link_to @project, project_url(@project) %> <%= l(:text_email_doc_follows) %>
|
||||||
<% @files.each do |file| %>
|
<% @files.each do |file| %>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%>
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%>
|
||||||
|
|
||||||
<%= User.current.name %> <%= l(:text_email_doc_updated) %>
|
<%= @author.name %> <%= l(:text_email_doc_updated) %>
|
||||||
<%= @project.name %> <%= l(:text_email_doc_follows) %>
|
<%= @project.name %> <%= l(:text_email_doc_follows) %>
|
||||||
<% @files.each do |file| %>
|
<% @files.each do |file| %>
|
||||||
<%= h(file.dmsf_path_str) %> (<%= file.name %>),
|
<%= h(file.dmsf_path_str) %> (<%= file.name %>),
|
||||||
|
|||||||
@ -41,7 +41,7 @@
|
|||||||
<% if @public_urls %>
|
<% if @public_urls %>
|
||||||
<% dmsf_public_url = DmsfPublicUrl.new %>
|
<% dmsf_public_url = DmsfPublicUrl.new %>
|
||||||
<% dmsf_public_url.dmsf_file = file %>
|
<% dmsf_public_url.dmsf_file = file %>
|
||||||
<% dmsf_public_url.user = User.current %>
|
<% dmsf_public_url.user = @author %>
|
||||||
<% dmsf_public_url.expire_at = @expired_at %>
|
<% dmsf_public_url.expire_at = @expired_at %>
|
||||||
<% dmsf_public_url.save %>
|
<% dmsf_public_url.save %>
|
||||||
<%= link_to(h(file.title), dmsf_public_urls_url(:token => dmsf_public_url.token)) %>
|
<%= link_to(h(file.title), dmsf_public_urls_url(:token => dmsf_public_url.token)) %>
|
||||||
@ -68,7 +68,7 @@
|
|||||||
<% if @public_urls %>
|
<% if @public_urls %>
|
||||||
<% dmsf_public_url = DmsfPublicUrl.new %>
|
<% dmsf_public_url = DmsfPublicUrl.new %>
|
||||||
<% dmsf_public_url.dmsf_file = file %>
|
<% dmsf_public_url.dmsf_file = file %>
|
||||||
<% dmsf_public_url.user = User.current %>
|
<% dmsf_public_url.user = @author %>
|
||||||
<% dmsf_public_url.expire_at = @expired_at %>
|
<% dmsf_public_url.expire_at = @expired_at %>
|
||||||
<% dmsf_public_url.save %>
|
<% dmsf_public_url.save %>
|
||||||
<%= link_to(h(file.title), dmsf_public_urls_url(:token => dmsf_public_url.token)) %>
|
<%= link_to(h(file.title), dmsf_public_urls_url(:token => dmsf_public_url.token)) %>
|
||||||
|
|||||||
@ -39,7 +39,7 @@
|
|||||||
<% if @public_urls %>
|
<% if @public_urls %>
|
||||||
<% dmsf_public_url = DmsfPublicUrl.new %>
|
<% dmsf_public_url = DmsfPublicUrl.new %>
|
||||||
<% dmsf_public_url.dmsf_file = file %>
|
<% dmsf_public_url.dmsf_file = file %>
|
||||||
<% dmsf_public_url.user = User.current %>
|
<% dmsf_public_url.user = @author %>
|
||||||
<% dmsf_public_url.expire_at = @expired_at %>
|
<% dmsf_public_url.expire_at = @expired_at %>
|
||||||
<% dmsf_public_url.save %>
|
<% dmsf_public_url.save %>
|
||||||
<%= dmsf_public_urls_url(:token => dmsf_public_url.token) %>
|
<%= dmsf_public_urls_url(:token => dmsf_public_url.token) %>
|
||||||
@ -61,7 +61,7 @@
|
|||||||
<% if @public_urls %>
|
<% if @public_urls %>
|
||||||
<% dmsf_public_url = DmsfPublicUrl.new %>
|
<% dmsf_public_url = DmsfPublicUrl.new %>
|
||||||
<% dmsf_public_url.dmsf_file = file %>
|
<% dmsf_public_url.dmsf_file = file %>
|
||||||
<% dmsf_public_url.user = User.current %>
|
<% dmsf_public_url.user = @author %>
|
||||||
<% dmsf_public_url.expire_at = @expired_at %>
|
<% dmsf_public_url.expire_at = @expired_at %>
|
||||||
<% dmsf_public_url.save %>
|
<% dmsf_public_url.save %>
|
||||||
<%= dmsf_public_urls_url(:token => dmsf_public_url.token) %>
|
<%= dmsf_public_urls_url(:token => dmsf_public_url.token) %>
|
||||||
|
|||||||
@ -88,6 +88,20 @@ table.display thead th div.DataTables_sort_wrapper span {
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Comptibility with Easy SW: sorting icons are not visible do */
|
||||||
|
.ui-state-default .ui-icon {
|
||||||
|
background-image: url("../../../stylesheets/jquery/images/ui-icons_759fcf_256x240.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-icon-triangle-1-n {
|
||||||
|
background-position: 0 -16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-icon-triangle-1-s {
|
||||||
|
background-position: -64px -16px;
|
||||||
|
}
|
||||||
|
/* end */
|
||||||
|
|
||||||
.dmsf_controls,
|
.dmsf_controls,
|
||||||
.dmsf_controls input,
|
.dmsf_controls input,
|
||||||
.dmsf_controls select,
|
.dmsf_controls select,
|
||||||
|
|||||||
@ -44,12 +44,16 @@ class DmsfFileContainerRollback < ActiveRecord::Migration[4.2]
|
|||||||
new_folder_ids << parent.id
|
new_folder_ids << parent.id
|
||||||
end
|
end
|
||||||
# Issue folder
|
# Issue folder
|
||||||
folder = DmsfFolder.new
|
title = "#{issue.id} - #{DmsfFolder.get_valid_title(issue.subject)}"
|
||||||
folder.project_id = issue.project.id
|
folder = DmsfFolder.find_by(project_id: issue.project.id, dmsf_folder_id: parent.id, title: title)
|
||||||
folder.dmsf_folder_id = parent.id
|
unless folder
|
||||||
folder.title = "#{issue.id} - #{issue.subject}"
|
folder = DmsfFolder.new
|
||||||
folder.user_id = User.anonymous.id
|
folder.project_id = issue.project.id
|
||||||
folder.save!
|
folder.dmsf_folder_id = parent.id
|
||||||
|
folder.title = "#{issue.id} - #{DmsfFolder.get_valid_title(issue.subject)}"
|
||||||
|
folder.user_id = User.anonymous.id
|
||||||
|
folder.save!
|
||||||
|
end
|
||||||
new_folder_ids << folder.id
|
new_folder_ids << folder.id
|
||||||
# Move the file into the new folder
|
# Move the file into the new folder
|
||||||
file.dmsf_folder_id = folder.id
|
file.dmsf_folder_id = folder.id
|
||||||
|
|||||||
@ -73,7 +73,7 @@ class DmsfMailerTest < RedmineDmsf::Test::UnitTest
|
|||||||
email_params[:expired_at] = DateTime.current.to_s
|
email_params[:expired_at] = DateTime.current.to_s
|
||||||
email_params[:folders] = nil
|
email_params[:folders] = nil
|
||||||
email_params[:files] = "[\"#{@file1.id}\"]"
|
email_params[:files] = "[\"#{@file1.id}\"]"
|
||||||
DmsfMailer.deliver_send_documents(@file1.project, email_params)
|
DmsfMailer.deliver_send_documents(@file1.project, email_params, User.current)
|
||||||
email = last_email
|
email = last_email
|
||||||
assert text_part(email).body.include? body
|
assert text_part(email).body.include? body
|
||||||
assert html_part(email).body.include? body
|
assert html_part(email).body.include? body
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user