diff options
-rw-r--r-- | app/models/public_body.rb | 14 | ||||
-rw-r--r-- | app/views/public_body/show.rhtml | 6 | ||||
-rw-r--r-- | config/general.yml-example | 7 | ||||
-rw-r--r-- | spec/models/public_body_spec.rb | 8 |
4 files changed, 35 insertions, 0 deletions
diff --git a/app/models/public_body.rb b/app/models/public_body.rb index 2cf1ce8a2..841e1e881 100644 --- a/app/models/public_body.rb +++ b/app/models/public_body.rb @@ -509,6 +509,20 @@ class PublicBody < ActiveRecord::Base return self.request_email_domain end + # Returns nil if configuration variable not set + def override_request_email + e = MySociety::Config.get("OVERRIDE_ALL_PUBLIC_BODY_REQUEST_EMAILS", "") + e if e != "" + end + + def request_email + if override_request_email + override_request_email + else + read_attribute(:request_email) + end + end + # Domain name of the request email def request_email_domain return PublicBody.extract_domain_from_email(self.request_email) diff --git a/app/views/public_body/show.rhtml b/app/views/public_body/show.rhtml index 63bd5f7fc..56a75f28c 100644 --- a/app/views/public_body/show.rhtml +++ b/app/views/public_body/show.rhtml @@ -64,6 +64,12 @@ <% else %> <%= _('For an unknown reason, it is not possible to make a request to this authority.')%> <% end %> + + <% if @public_body.override_request_email %> + <p> + <strong>Note:</strong> Because we're testing, requests are being sent to <%= @public_body.override_request_email %> rather than to the actual authority. + </p> + <% end %> </div> </div> diff --git a/config/general.yml-example b/config/general.yml-example index 7aa01e899..25e3dba46 100644 --- a/config/general.yml-example +++ b/config/general.yml-example @@ -161,3 +161,10 @@ VARNISH_HOST: localhost # Adding a value here will enable Google Analytics on all non-admin pages. GA_CODE: '' + +# If you want to override *all* the public body request emails with your own +# email so that request emails that would normally go to the public body +# go to you, then uncomment below and fill in your email. +# Useful for a staging server to play with the whole process of sending requests +# without inadvertently sending an email to a real authority +#OVERRIDE_ALL_PUBLIC_BODY_REQUEST_EMAILS: test-email@foo.com
\ No newline at end of file diff --git a/spec/models/public_body_spec.rb b/spec/models/public_body_spec.rb index 011824190..c2e0a6353 100644 --- a/spec/models/public_body_spec.rb +++ b/spec/models/public_body_spec.rb @@ -453,3 +453,11 @@ describe PublicBody do end end + +describe PublicBody, " when override all public body request emails set" do + it "should return the overridden request email" do + MySociety::Config.should_receive(:get).with("OVERRIDE_ALL_PUBLIC_BODY_REQUEST_EMAILS", "").twice.and_return("catch_all_test_email@foo.com") + @geraldine = public_bodies(:geraldine_public_body) + @geraldine.request_email.should == "catch_all_test_email@foo.com" + end +end |