]> source.dussan.org Git - redmine.git/commitdiff
Mail handler: adds --no-notification option to disable notifications to the created...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 3 Mar 2013 08:57:00 +0000 (08:57 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 3 Mar 2013 08:57:00 +0000 (08:57 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11526 e93f8b46-1217-0410-a6f0-8f06a7374b81

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

index 43e656d864b375156c7536704a44b207e705d53e..edbbe406bbef39f9063bc625751bb477a71c5342 100644 (file)
@@ -39,6 +39,7 @@ class MailHandler < ActionMailer::Base
     @@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_notification] = (@@handler_options[:no_notification].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)
@@ -455,6 +456,9 @@ class MailHandler < ActionMailer::Base
     end
     if addr.present?
       user = self.class.new_user_from_attributes(addr, name)
+      if @@handler_options[:no_notification]
+        user.mail_notification = 'none'
+      end
       if user.save
         user
       else
index 9e9bac051ab316b311223d3c091920848b38d8b5..5d2b3d0c6acde78753d1fe9c288be59c0e74164d 100644 (file)
@@ -42,7 +42,7 @@ class RedmineMailHandler
   VERSION = '0.2.3'
 
   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
     self.issue_attributes = {}
@@ -78,6 +78,8 @@ class RedmineMailHandler
                                               "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.on("--no-notification",            "disable email notifications for the created",
+                                              "user") { |v| self.no_notification = '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}
@@ -120,6 +122,7 @@ class RedmineMailHandler
                            'unknown_user' => unknown_user,
                            'default_group' => default_group,
                            'no_account_notice' => no_account_notice,
+                           'no_notification' => no_notification,
                            'no_permission_check' => no_permission_check}
     issue_attributes.each { |attr, value| data["issue[#{attr}]"] = value }
 
index 33b4d58c83941f87ac033f92f601fb909356ea6b..2b5b3f070e6e3f1392934a54e22a6707a21c0c24 100644 (file)
@@ -336,6 +336,19 @@ class MailHandlerTest < ActiveSupport::TestCase
     assert_include 'Ticket by unknown user', email.subject
   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
     Role.anonymous.add_permission!(:add_issues)
     assert_equal false, submit_email('ticket_without_from_header.eml')