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  | 
