]> source.dussan.org Git - redmine.git/commitdiff
Merged r3783 from trunk.
authorEric Davis <edavis@littlestreamsoftware.com>
Sat, 19 Jun 2010 23:02:50 +0000 (23:02 +0000)
committerEric Davis <edavis@littlestreamsoftware.com>
Sat, 19 Jun 2010 23:02:50 +0000 (23:02 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3791 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/mail_handler.rb
test/fixtures/mail_handler/ticket_by_empty_user.eml [new file with mode: 0644]
test/unit/mail_handler_test.rb

index ac05847466ba2f0965f3df6027e8eb38c6520cf1..a169364a1e4f208be0ae4c231f072dbc141f3325 100644 (file)
@@ -49,7 +49,7 @@ class MailHandler < ActionMailer::Base
       logger.info  "MailHandler: ignoring email from Redmine emission address [#{sender_email}]" if logger && logger.info
       return false
     end
-    @user = User.find_by_mail(sender_email)
+    @user = User.find_by_mail(sender_email) if sender_email.present?
     if @user && !@user.active?
       logger.info  "MailHandler: ignoring email from non-active user [#{@user.login}]" if logger && logger.info
       return false
diff --git a/test/fixtures/mail_handler/ticket_by_empty_user.eml b/test/fixtures/mail_handler/ticket_by_empty_user.eml
new file mode 100644 (file)
index 0000000..e0d168a
--- /dev/null
@@ -0,0 +1,17 @@
+Return-Path: <john.doe@somenet.foo>\r
+Received: from osiris ([127.0.0.1])\r
+       by OSIRIS\r
+       with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200\r
+Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>\r
+To: <redmine@somenet.foo>\r
+Subject: Ticket by unknown user\r
+Date: Sun, 22 Jun 2008 12:28:07 +0200\r
+MIME-Version: 1.0\r
+Content-Type: text/plain;\r
+       format=flowed;\r
+       charset="iso-8859-1";\r
+       reply-type=original\r
+Content-Transfer-Encoding: 7bit\r
+\r
+This is a ticket submitted by an unknown user.\r
+\r
index a625404fbf94e0a31c448bf8262f7f3f97ed7de9..b4646dbff8d81c079ebbe256d4b6e6f6c4d59928 100644 (file)
@@ -166,6 +166,15 @@ class MailHandlerTest < ActiveSupport::TestCase
       assert issue.author.anonymous?
     end
   end
+
+  def test_add_issue_by_anonymous_user_with_no_from_address
+    Role.anonymous.add_permission!(:add_issues)
+    assert_no_difference 'User.count' do
+      issue = submit_email('ticket_by_empty_user.eml', :issue => {:project => 'ecookbook'}, :unknown_user => 'accept')
+      assert issue.is_a?(Issue)
+      assert issue.author.anonymous?
+    end
+  end
   
   def test_add_issue_by_anonymous_user_on_private_project
     Role.anonymous.add_permission!(:add_issues)