@@ -2,7 +2,7 @@ class MessageGateway < ActionMailer::Base
22 def receive ( email )
33 user = get_receiving_user_from_email_address ( email )
44 return false if user . nil?
5- return false unless check_sender_is_in_mailmap ( user , email )
5+ return false unless check_sender_is_in_mailmap ( user , email . from [ 0 ] )
66
77 context = user . prefs . sms_context
88 todo_params = get_todo_params ( email )
@@ -90,29 +90,24 @@ def get_receiving_user_from_sms_email(address)
9090 return user
9191 end
9292
93- def check_sender_is_in_mailmap ( user , email )
94- if user . present? && !sender_is_in_mailmap? ( user , email )
95- Rails . logger . warn "#{ email . from [ 0 ] } not found in mailmap for #{ user . login } "
93+ def check_sender_is_in_mailmap ( user , from )
94+ if user . present? && SITE_CONFIG [ 'email_dispatch' ] == 'to' && !sender_is_in_mailmap? ( user , from )
95+ Rails . logger . warn "#{ from } not found in mailmap for #{ user . login } "
9696 return false
9797 end
9898 return true
9999 end
100100
101- def sender_is_in_mailmap? ( user , email )
102- if SITE_CONFIG [ 'email_dispatch' ] == 'to'
103- if SITE_CONFIG [ 'mailmap' ] . is_a? Hash
104- # Look for the sender in the map of allowed senders
105- SITE_CONFIG [ 'mailmap' ] [ user . preference . sms_email ] . include? email . from [ 0 ]
106- else
107- # If the config mailmap isn't defined, use the values provided by the users.
108- pref_senders = user . prefs . sms_permitted_senders . split ( ',' ) . collect ( &:strip )
109- pref_senders . include? email . from [ 0 ]
110- end
111- else
112- # We can't check the map if it's not defined, or if the lookup is the
113- # wrong way round, so just allow it
114- true
101+ def sender_is_in_mailmap? ( user , from )
102+ if SITE_CONFIG [ 'mailmap' ] . is_a? Hash
103+ # Look for the sender in the map of allowed senders
104+ SITE_CONFIG [ 'mailmap' ] [ user . preference . sms_email ] . include? from
105+ elif !( pref_senders = user . prefs . sms_permitted_senders ) . empty?
106+ # If the config mailmap isn't defined, use the values provided by the users.
107+ pref_senders . split ( ',' ) . collect ( &:strip ) . include? from
115108 end
109+ # We can't check the map if it's not defined so just allow it
110+ true
116111 end
117112
118113 def get_text_or_nil ( text )
0 commit comments