Wrong email notifications' issuer

This commit is contained in:
Karel Pičman 2019-03-25 11:27:53 +01:00
parent 546ebd90b9
commit 4beeedd282
9 changed files with 16 additions and 13 deletions

View File

@ -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

View File

@ -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

View File

@ -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| %>
<p>

View File

@ -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 %>

View File

@ -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| %>
<p>

View File

@ -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 %>),

View File

@ -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)) %>

View File

@ -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) %>

View File

@ -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