diff --git a/app/controllers/dmsf_controller.rb b/app/controllers/dmsf_controller.rb index 58f3b517..f544efb1 100644 --- a/app/controllers/dmsf_controller.rb +++ b/app/controllers/dmsf_controller.rb @@ -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 diff --git a/app/models/dmsf_mailer.rb b/app/models/dmsf_mailer.rb index def6f61d..3a774b9e 100644 --- a/app/models/dmsf_mailer.rb +++ b/app/models/dmsf_mailer.rb @@ -38,6 +38,7 @@ class DmsfMailer < Mailer redmine_headers 'Project' => project.identifier if project @files = files @project = project + @author = files.first.last_revision.user if files.first.last_revision 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)}" @@ -58,6 +59,7 @@ class DmsfMailer < Mailer redmine_headers 'Project' => project.identifier if project @files = files @project = project + @author = files.first.deleted_by_user message_id project set_language_if_valid user.language mail :to => user.mail, @@ -65,11 +67,11 @@ class DmsfMailer < Mailer 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 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' @@ -77,7 +79,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 } @@ -106,6 +108,7 @@ class DmsfMailer < Mailer @text1 = l(text1_id, :name => workflow.name, :filename => revision.dmsf_file.name, :notice => notice) @text2 = l(text2_id) @notice = notice + @author = User.find_by(id: revision.dmsf_workflow_assigned_by) mail :to => user.mail, :subject => "[#{@project.name} - #{l(:field_label_dmsf_workflow)}] #{@workflow.name} #{l(subject_id)}" end diff --git a/app/views/dmsf_mailer/files_deleted.html.erb b/app/views/dmsf_mailer/files_deleted.html.erb index dd2d3bef..e4956298 100644 --- a/app/views/dmsf_mailer/files_deleted.html.erb +++ b/app/views/dmsf_mailer/files_deleted.html.erb @@ -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) if @author%> <%= link_to @project, project_url(@project) %> <%= l(:text_email_doc_follows) %> <% @files.each do |file| %>
diff --git a/app/views/dmsf_mailer/files_deleted.text.erb b/app/views/dmsf_mailer/files_deleted.text.erb index fe62eee3..159cb4e6 100644 --- a/app/views/dmsf_mailer/files_deleted.text.erb +++ b/app/views/dmsf_mailer/files_deleted.text.erb @@ -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) if @author %> <% @files.each do |file| %> <%= h(file.dmsf_path_str) %> (<%= file.name %>) <% if file.last_revision %> diff --git a/app/views/dmsf_mailer/files_updated.html.erb b/app/views/dmsf_mailer/files_updated.html.erb index 33f82505..d970a0d7 100644 --- a/app/views/dmsf_mailer/files_updated.html.erb +++ b/app/views/dmsf_mailer/files_updated.html.erb @@ -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) if @author%> <%= link_to @project, project_url(@project) %> <%= l(:text_email_doc_follows) %> <% @files.each do |file| %>
diff --git a/app/views/dmsf_mailer/files_updated.text.erb b/app/views/dmsf_mailer/files_updated.text.erb index f5a49309..ed7d4be5 100644 --- a/app/views/dmsf_mailer/files_updated.text.erb +++ b/app/views/dmsf_mailer/files_updated.text.erb @@ -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) if @author %> <%= @project.name %> <%= l(:text_email_doc_follows) %> <% @files.each do |file| %> <%= h(file.dmsf_path_str) %> (<%= file.name %>), diff --git a/app/views/dmsf_mailer/send_documents.html.erb b/app/views/dmsf_mailer/send_documents.html.erb index 054ebb33..6db67c95 100644 --- a/app/views/dmsf_mailer/send_documents.html.erb +++ b/app/views/dmsf_mailer/send_documents.html.erb @@ -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)) %> diff --git a/app/views/dmsf_mailer/send_documents.text.erb b/app/views/dmsf_mailer/send_documents.text.erb index 1cc6935a..900041e1 100644 --- a/app/views/dmsf_mailer/send_documents.text.erb +++ b/app/views/dmsf_mailer/send_documents.text.erb @@ -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) %> diff --git a/test/unit/dmsf_mailer_test.rb b/test/unit/dmsf_mailer_test.rb index 0c008da4..3c053c9a 100644 --- a/test/unit/dmsf_mailer_test.rb +++ b/test/unit/dmsf_mailer_test.rb @@ -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