From ffa5720448017b7fd3bf09b9a67be86458c6f946 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Thu, 15 Nov 2012 09:48:56 +0000 Subject: Refactor access to the mail object - only from incoming_message. --- app/models/info_request.rb | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'app/models/info_request.rb') diff --git a/app/models/info_request.rb b/app/models/info_request.rb index 89893a396..813e97cdf 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -355,12 +355,7 @@ public def InfoRequest.guess_by_incoming_email(incoming_message) guesses = [] # 1. Try to guess based on the email address(es) - addresses = - (incoming_message.mail.to || []) + - (incoming_message.mail.cc || []) + - (incoming_message.mail.envelope_to || []) - addresses.uniq! - for address in addresses + for address in incoming_message.addresses id, hash = InfoRequest._extract_id_hash_from_email(address) guesses.push(InfoRequest.find_by_id(id)) guesses.push(InfoRequest.find_by_idhash(hash)) -- cgit v1.2.3 From 290833aa4c02b1167cf9e765fa4d3249b88ac277 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Thu, 15 Nov 2012 09:50:39 +0000 Subject: Rubyise loop. --- app/models/info_request.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/models/info_request.rb') diff --git a/app/models/info_request.rb b/app/models/info_request.rb index 813e97cdf..b792e6819 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -355,7 +355,7 @@ public def InfoRequest.guess_by_incoming_email(incoming_message) guesses = [] # 1. Try to guess based on the email address(es) - for address in incoming_message.addresses + incoming_message.addresses.each do |address| id, hash = InfoRequest._extract_id_hash_from_email(address) guesses.push(InfoRequest.find_by_id(id)) guesses.push(InfoRequest.find_by_idhash(hash)) -- cgit v1.2.3 From 2a96a18f3fd7dea4936d5056bf24a32be0263d9a Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Thu, 15 Nov 2012 09:53:43 +0000 Subject: Move access to mail message id to incoming message. --- app/models/info_request.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'app/models/info_request.rb') diff --git a/app/models/info_request.rb b/app/models/info_request.rb index b792e6819..e1885dee6 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -414,8 +414,7 @@ public end for im in self.incoming_messages - other_message_id = im.mail.message_id - if message_id == other_message_id + if message_id == im.message_id return true end end -- cgit v1.2.3 From f5ced2133cd1a66e18b225208fa96f4f36a20889 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Thu, 15 Nov 2012 16:56:06 +0000 Subject: Move address_from_name_and_email to mail handler. --- app/models/info_request.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/models/info_request.rb') diff --git a/app/models/info_request.rb b/app/models/info_request.rb index e1885dee6..85524e798 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -275,7 +275,7 @@ public return self.magic_email("request-") end def incoming_name_and_email - return TMail::Address.address_from_name_and_email(self.user_name, self.incoming_email).to_s + return MailHandler.address_from_name_and_email(self.user_name, self.incoming_email) end # Subject lines for emails about the request @@ -707,11 +707,11 @@ public return self.public_body.is_followupable? end def recipient_name_and_email - return TMail::Address.address_from_name_and_email( + return MailHandler.address_from_name_and_email( _("{{law_used}} requests at {{public_body}}", :law_used => self.law_used_short, :public_body => self.public_body.short_or_long_name), - self.recipient_email).to_s + self.recipient_email) end # History of some things that have happened -- cgit v1.2.3 From 286abd1ff21e09fbab831c4c3439bff9e8ddce56 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Mon, 19 Nov 2012 11:54:15 +0000 Subject: Handle a request for json on a an external request - return the user_name attribute instead of a full user model. Fixes #715. --- app/models/info_request.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'app/models/info_request.rb') diff --git a/app/models/info_request.rb b/app/models/info_request.rb index e1885dee6..e9335228a 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -1124,7 +1124,11 @@ public } if deep - ret[:user] = self.user.json_for_api + if self.user + ret[:user] = self.user.json_for_api + else + ret[:user_name] = self.user_name + end ret[:public_body] = self.public_body.json_for_api ret[:info_request_events] = self.info_request_events.map { |e| e.json_for_api(false) } end -- cgit v1.2.3 From 80b12ef56782a11a18b633647cead4847c55c9ab Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Thu, 29 Nov 2012 12:25:17 +0000 Subject: Standardize slug generation for external users so that it uses the same underlying method as other slug generation. Fixes #567. --- app/models/info_request.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/models/info_request.rb') diff --git a/app/models/info_request.rb b/app/models/info_request.rb index 194f8e105..0a06b84a2 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -138,7 +138,7 @@ class InfoRequest < ActiveRecord::Base if external_user_name.nil? fake_slug = "anonymous" else - fake_slug = external_user_name.parameterize + fake_slug = MySociety::Format.simplify_url_part(external_user_name, 'external_user', 32) end (public_body.url_name || "") + "_" + fake_slug else -- cgit v1.2.3 From bfb3fe634d8719336a40f1105d322ae2e9c2d0ad Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Mon, 3 Dec 2012 17:40:58 +0000 Subject: Delegate getting the from address of an incoming mail to the mail handler. --- app/models/info_request.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/models/info_request.rb') diff --git a/app/models/info_request.rb b/app/models/info_request.rb index 0a06b84a2..3355b9443 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -434,11 +434,11 @@ public elsif self.allow_new_responses_from == 'anybody' allow = true elsif self.allow_new_responses_from == 'authority_only' - if email.from_addrs.nil? || email.from_addrs.size == 0 + sender_email = MailHandler.get_from_address(email) + if sender_email.nil? allow = false reason = _('Only the authority can reply to this request, but there is no "From" address to check against') else - sender_email = email.from_addrs[0].spec sender_domain = PublicBody.extract_domain_from_email(sender_email) reason = _("Only the authority can reply to this request, and I don't recognise the address this reply was sent from") allow = false -- cgit v1.2.3