Mail handler: adds --no-notification option to disable notifications to the created user (#13341).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11526 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
6cffab9919
commit
f77ed4a7c3
|
@ -39,6 +39,7 @@ class MailHandler < ActionMailer::Base
|
||||||
@@handler_options[:allow_override] << 'status' unless @@handler_options[:issue].has_key?(:status)
|
@@handler_options[:allow_override] << 'status' unless @@handler_options[:issue].has_key?(:status)
|
||||||
|
|
||||||
@@handler_options[:no_account_notice] = (@@handler_options[:no_account_notice].to_s == '1')
|
@@handler_options[:no_account_notice] = (@@handler_options[:no_account_notice].to_s == '1')
|
||||||
|
@@handler_options[:no_notification] = (@@handler_options[:no_notification].to_s == '1')
|
||||||
@@handler_options[:no_permission_check] = (@@handler_options[:no_permission_check].to_s == '1')
|
@@handler_options[:no_permission_check] = (@@handler_options[:no_permission_check].to_s == '1')
|
||||||
|
|
||||||
email.force_encoding('ASCII-8BIT') if email.respond_to?(:force_encoding)
|
email.force_encoding('ASCII-8BIT') if email.respond_to?(:force_encoding)
|
||||||
|
@ -455,6 +456,9 @@ class MailHandler < ActionMailer::Base
|
||||||
end
|
end
|
||||||
if addr.present?
|
if addr.present?
|
||||||
user = self.class.new_user_from_attributes(addr, name)
|
user = self.class.new_user_from_attributes(addr, name)
|
||||||
|
if @@handler_options[:no_notification]
|
||||||
|
user.mail_notification = 'none'
|
||||||
|
end
|
||||||
if user.save
|
if user.save
|
||||||
user
|
user
|
||||||
else
|
else
|
||||||
|
|
|
@ -42,7 +42,7 @@ class RedmineMailHandler
|
||||||
VERSION = '0.2.3'
|
VERSION = '0.2.3'
|
||||||
|
|
||||||
attr_accessor :verbose, :issue_attributes, :allow_override, :unknown_user, :default_group, :no_permission_check,
|
attr_accessor :verbose, :issue_attributes, :allow_override, :unknown_user, :default_group, :no_permission_check,
|
||||||
:url, :key, :no_check_certificate, :no_account_notice
|
:url, :key, :no_check_certificate, :no_account_notice, :no_notification
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
self.issue_attributes = {}
|
self.issue_attributes = {}
|
||||||
|
@ -78,6 +78,8 @@ class RedmineMailHandler
|
||||||
"GROUP can be a comma separated list of groups") { |v| self.default_group = v}
|
"GROUP can be a comma separated list of groups") { |v| self.default_group = v}
|
||||||
opts.on("--no-account-notice", "don't send account information to the newly",
|
opts.on("--no-account-notice", "don't send account information to the newly",
|
||||||
"created user") { |v| self.no_account_notice = '1'}
|
"created user") { |v| self.no_account_notice = '1'}
|
||||||
|
opts.on("--no-notification", "disable email notifications for the created",
|
||||||
|
"user") { |v| self.no_notification = '1'}
|
||||||
opts.separator("")
|
opts.separator("")
|
||||||
opts.separator("Issue attributes control options:")
|
opts.separator("Issue attributes control options:")
|
||||||
opts.on("-p", "--project PROJECT", "identifier of the target project") {|v| self.issue_attributes['project'] = v}
|
opts.on("-p", "--project PROJECT", "identifier of the target project") {|v| self.issue_attributes['project'] = v}
|
||||||
|
@ -120,6 +122,7 @@ class RedmineMailHandler
|
||||||
'unknown_user' => unknown_user,
|
'unknown_user' => unknown_user,
|
||||||
'default_group' => default_group,
|
'default_group' => default_group,
|
||||||
'no_account_notice' => no_account_notice,
|
'no_account_notice' => no_account_notice,
|
||||||
|
'no_notification' => no_notification,
|
||||||
'no_permission_check' => no_permission_check}
|
'no_permission_check' => no_permission_check}
|
||||||
issue_attributes.each { |attr, value| data["issue[#{attr}]"] = value }
|
issue_attributes.each { |attr, value| data["issue[#{attr}]"] = value }
|
||||||
|
|
||||||
|
|
|
@ -336,6 +336,19 @@ class MailHandlerTest < ActiveSupport::TestCase
|
||||||
assert_include 'Ticket by unknown user', email.subject
|
assert_include 'Ticket by unknown user', email.subject
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_created_user_should_have_mail_notification_to_none_with_no_notification_option
|
||||||
|
assert_difference 'User.count' do
|
||||||
|
submit_email(
|
||||||
|
'ticket_by_unknown_user.eml',
|
||||||
|
:issue => {:project => 'ecookbook'},
|
||||||
|
:unknown_user => 'create',
|
||||||
|
:no_notification => '1'
|
||||||
|
)
|
||||||
|
end
|
||||||
|
user = User.order('id DESC').first
|
||||||
|
assert_equal 'none', user.mail_notification
|
||||||
|
end
|
||||||
|
|
||||||
def test_add_issue_without_from_header
|
def test_add_issue_without_from_header
|
||||||
Role.anonymous.add_permission!(:add_issues)
|
Role.anonymous.add_permission!(:add_issues)
|
||||||
assert_equal false, submit_email('ticket_without_from_header.eml')
|
assert_equal false, submit_email('ticket_without_from_header.eml')
|
||||||
|
|
Loading…
Reference in New Issue