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?
|
||||
flash[:errors] = l(:error_email_to_must_be_entered)
|
||||
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])
|
||||
flash[:notice] = l(:notice_email_sent, params[:email][:to])
|
||||
end
|
||||
|
||||
@ -25,8 +25,8 @@ class DmsfMailer < Mailer
|
||||
layout 'mailer'
|
||||
|
||||
def self.deliver_files_updated(project, files)
|
||||
files = files.select { |file| file.notify? }
|
||||
users = get_notify_users(project, files)
|
||||
files = files.select { |file| file.notify? }
|
||||
users.each do |user|
|
||||
files_updated(user, project, files).deliver_later
|
||||
end
|
||||
@ -39,6 +39,7 @@ class DmsfMailer < Mailer
|
||||
@files = files
|
||||
@project = project
|
||||
@author = files.first.last_revision.user if files.first.last_revision
|
||||
@author = User.anonymous unless @author
|
||||
message_id project
|
||||
set_language_if_valid user.language
|
||||
mail :to => user.mail, subject: "[#{@project.name} - #{l(:menu_dmsf)}] #{l(:text_email_doc_updated_subject)}"
|
||||
@ -46,8 +47,8 @@ class DmsfMailer < Mailer
|
||||
end
|
||||
|
||||
def self.deliver_files_deleted(project, files)
|
||||
files = files.select { |file| file.notify? }
|
||||
users = get_notify_users(project, files)
|
||||
files = files.select { |file| file.notify? }
|
||||
users.each do |user|
|
||||
files_deleted(user, project, files).deliver_later
|
||||
end
|
||||
@ -60,6 +61,7 @@ class DmsfMailer < Mailer
|
||||
@files = files
|
||||
@project = project
|
||||
@author = files.first.deleted_by_user
|
||||
@author = User.anonymous unless @author
|
||||
message_id project
|
||||
set_language_if_valid user.language
|
||||
mail :to => user.mail,
|
||||
@ -67,11 +69,11 @@ class DmsfMailer < Mailer
|
||||
end
|
||||
end
|
||||
|
||||
def self.deliver_send_documents(project, email_params)
|
||||
send_documents(User.current, project, email_params).deliver_now
|
||||
def self.deliver_send_documents(project, email_params, author)
|
||||
send_documents(User.current, project, email_params, author).deliver_now
|
||||
end
|
||||
|
||||
def send_documents(_, project, email_params)
|
||||
def send_documents(_, project, email_params, author)
|
||||
redmine_headers 'Project' => project.identifier if project
|
||||
@body = email_params[:body]
|
||||
@links_only = email_params[:links_only] == '1'
|
||||
@ -79,7 +81,7 @@ class DmsfMailer < Mailer
|
||||
@expired_at = email_params[:expired_at]
|
||||
@folders = email_params[:folders]
|
||||
@files = email_params[:files]
|
||||
|
||||
@author = author
|
||||
unless @links_only
|
||||
zipped_content_data = open(email_params[:zipped_content], 'rb') { |io| io.read }
|
||||
attachments['Documents.zip'] = { :content_type => 'application/zip', :content => zipped_content_data }
|
||||
@ -109,6 +111,7 @@ class DmsfMailer < Mailer
|
||||
@text2 = l(text2_id)
|
||||
@notice = notice
|
||||
@author = User.find_by(id: revision.dmsf_workflow_assigned_by)
|
||||
@author = User.anonymous unless @author
|
||||
mail :to => user.mail,
|
||||
:subject => "[#{@project.name} - #{l(:field_label_dmsf_workflow)}] #{@workflow.name} #{l(subject_id)}"
|
||||
end
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# 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) %>
|
||||
<% @files.each do |file| %>
|
||||
<p>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# 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| %>
|
||||
<%= h(file.dmsf_path_str) %> (<%= file.name %>)
|
||||
<% if file.last_revision %>
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# 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) %>
|
||||
<% @files.each do |file| %>
|
||||
<p>
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# 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) %>
|
||||
<% @files.each do |file| %>
|
||||
<%= h(file.dmsf_path_str) %> (<%= file.name %>),
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
<% if @public_urls %>
|
||||
<% dmsf_public_url = DmsfPublicUrl.new %>
|
||||
<% 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.save %>
|
||||
<%= link_to(h(file.title), dmsf_public_urls_url(:token => dmsf_public_url.token)) %>
|
||||
@ -68,7 +68,7 @@
|
||||
<% if @public_urls %>
|
||||
<% dmsf_public_url = DmsfPublicUrl.new %>
|
||||
<% 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.save %>
|
||||
<%= link_to(h(file.title), dmsf_public_urls_url(:token => dmsf_public_url.token)) %>
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
<% if @public_urls %>
|
||||
<% dmsf_public_url = DmsfPublicUrl.new %>
|
||||
<% 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.save %>
|
||||
<%= dmsf_public_urls_url(:token => dmsf_public_url.token) %>
|
||||
@ -61,7 +61,7 @@
|
||||
<% if @public_urls %>
|
||||
<% dmsf_public_url = DmsfPublicUrl.new %>
|
||||
<% 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.save %>
|
||||
<%= dmsf_public_urls_url(:token => dmsf_public_url.token) %>
|
||||
|
||||
@ -88,6 +88,20 @@ table.display thead th div.DataTables_sort_wrapper span {
|
||||
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 input,
|
||||
.dmsf_controls select,
|
||||
|
||||
@ -44,12 +44,16 @@ class DmsfFileContainerRollback < ActiveRecord::Migration[4.2]
|
||||
new_folder_ids << parent.id
|
||||
end
|
||||
# Issue folder
|
||||
folder = DmsfFolder.new
|
||||
folder.project_id = issue.project.id
|
||||
folder.dmsf_folder_id = parent.id
|
||||
folder.title = "#{issue.id} - #{issue.subject}"
|
||||
folder.user_id = User.anonymous.id
|
||||
folder.save!
|
||||
title = "#{issue.id} - #{DmsfFolder.get_valid_title(issue.subject)}"
|
||||
folder = DmsfFolder.find_by(project_id: issue.project.id, dmsf_folder_id: parent.id, title: title)
|
||||
unless folder
|
||||
folder = DmsfFolder.new
|
||||
folder.project_id = issue.project.id
|
||||
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
|
||||
# Move the file into the new folder
|
||||
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[:folders] = nil
|
||||
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
|
||||
assert text_part(email).body.include? body
|
||||
assert html_part(email).body.include? body
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user