]> source.dussan.org Git - redmine.git/commitdiff
Merged r11525 from trunk (#11498).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 10 Mar 2013 12:36:44 +0000 (12:36 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 10 Mar 2013 12:36:44 +0000 (12:36 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.3-stable@11581 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/mail_handler.rb
extra/mail_handler/rdm-mailhandler.rb
test/unit/mail_handler_test.rb

index f1efaa97c270c931b62c18a185b9a74a6645eb23..b986384a6789bbd288962d50b7533c5c3b7242e7 100644 (file)
@@ -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}]"
index e922eb033891d09efc5c7f395ee2cc22ce372db4..26f61ba87dd2cf4ad02816c53ab2acb1784848ba 100644 (file)
@@ -23,9 +23,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 = {}
@@ -59,6 +60,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}
@@ -100,6 +103,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 }
 
index bd30e5d3f6d1ec2352fbe2c71b8c4d97c931ef6f..08271560808e3177620ebda664cc26d48a9def2a 100644 (file)
@@ -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')