summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2013-03-03 08:41:52 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2013-03-03 08:41:52 +0000
commit6cffab991911a87181b3fb54081e1d9a35f6e8d8 (patch)
tree7315ad3cd88f7a50497b6e386458735933d0294d
parente7bf31d16212ac6a03b5e43a6c692ca547cbefb1 (diff)
downloadredmine-6cffab991911a87181b3fb54081e1d9a35f6e8d8.tar.gz
redmine-6cffab991911a87181b3fb54081e1d9a35f6e8d8.zip
Mail handler: adds --no-account-notice option for not sending account information to the created user (#11498).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11525 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/mail_handler.rb7
-rw-r--r--extra/mail_handler/rdm-mailhandler.rb8
-rw-r--r--test/unit/mail_handler_test.rb16
3 files changed, 27 insertions, 4 deletions
diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb
index f85b50d73..43e656d86 100644
--- a/app/models/mail_handler.rb
+++ b/app/models/mail_handler.rb
@@ -38,7 +38,8 @@ class MailHandler < ActionMailer::Base
# Status overridable by default
@@handler_options[:allow_override] << 'status' unless @@handler_options[:issue].has_key?(:status)
- @@handler_options[:no_permission_check] = (@@handler_options[:no_permission_check].to_s == '1' ? true : false)
+ @@handler_options[:no_account_notice] = (@@handler_options[:no_account_notice].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)
super(email)
@@ -98,7 +99,9 @@ class MailHandler < ActionMailer::Base
logger.info "MailHandler: [#{@user.login}] account created"
end
add_user_to_group(@@handler_options[:default_group])
- Mailer.account_information(@user, @user.password).deliver
+ unless @@handler_options[:no_account_notice]
+ Mailer.account_information(@user, @user.password).deliver
+ end
else
if logger && logger.error
logger.error "MailHandler: could not create account for [#{sender_email}]"
diff --git a/extra/mail_handler/rdm-mailhandler.rb b/extra/mail_handler/rdm-mailhandler.rb
index a4a736e07..9e9bac051 100644
--- a/extra/mail_handler/rdm-mailhandler.rb
+++ b/extra/mail_handler/rdm-mailhandler.rb
@@ -39,9 +39,10 @@ module Net
end
class RedmineMailHandler
- VERSION = '0.2.2'
+ VERSION = '0.2.3'
- attr_accessor :verbose, :issue_attributes, :allow_override, :unknown_user, :default_group, :no_permission_check, :url, :key, :no_check_certificate
+ attr_accessor :verbose, :issue_attributes, :allow_override, :unknown_user, :default_group, :no_permission_check,
+ :url, :key, :no_check_certificate, :no_account_notice
def initialize
self.issue_attributes = {}
@@ -75,6 +76,8 @@ class RedmineMailHandler
"* create: create a user account") {|v| self.unknown_user = v}
opts.on("--default-group GROUP", "add created user to GROUP (none by default)",
"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",
+ "created user") { |v| self.no_account_notice = '1'}
opts.separator("")
opts.separator("Issue attributes control options:")
opts.on("-p", "--project PROJECT", "identifier of the target project") {|v| self.issue_attributes['project'] = v}
@@ -116,6 +119,7 @@ class RedmineMailHandler
'allow_override' => allow_override,
'unknown_user' => unknown_user,
'default_group' => default_group,
+ 'no_account_notice' => no_account_notice,
'no_permission_check' => no_permission_check}
issue_attributes.each { |attr, value| data["issue[#{attr}]"] = value }
diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb
index 269ac9da1..33b4d58c8 100644
--- a/test/unit/mail_handler_test.rb
+++ b/test/unit/mail_handler_test.rb
@@ -320,6 +320,22 @@ class MailHandlerTest < ActiveSupport::TestCase
assert_same_elements [group1, group2], user.groups
end
+ def test_created_user_should_not_receive_account_information_with_no_account_info_option
+ assert_difference 'User.count' do
+ submit_email(
+ 'ticket_by_unknown_user.eml',
+ :issue => {:project => 'ecookbook'},
+ :unknown_user => 'create',
+ :no_account_notice => '1'
+ )
+ end
+
+ # only 1 email for the new issue notification
+ assert_equal 1, ActionMailer::Base.deliveries.size
+ email = ActionMailer::Base.deliveries.first
+ assert_include 'Ticket by unknown user', email.subject
+ end
+
def test_add_issue_without_from_header
Role.anonymous.add_permission!(:add_issues)
assert_equal false, submit_email('ticket_without_from_header.eml')