aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/info_request.rb2
-rw-r--r--app/models/public_body.rb1
-rw-r--r--spec/models/info_request_spec.rb8
3 files changed, 10 insertions, 1 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index 9290ab77d..83456b54f 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -997,7 +997,7 @@ public
# Call groups of censor rules
def apply_censor_rules_to_text!(text)
- applicable_rules = [self.censor_rules, CensorRule.global.all]
+ applicable_rules = [self.censor_rules, self.public_body.censor_rules, CensorRule.global.all]
if self.user && !self.user.censor_rules.empty?
applicable_rules << self.user.censor_rules
end
diff --git a/app/models/public_body.rb b/app/models/public_body.rb
index 97802c7e8..60ecb2781 100644
--- a/app/models/public_body.rb
+++ b/app/models/public_body.rb
@@ -42,6 +42,7 @@ class PublicBody < ActiveRecord::Base
has_many :info_requests, :order => 'created_at desc'
has_many :track_things, :order => 'created_at desc'
+ has_many :censor_rules, :order => 'created_at desc'
has_tag_string
diff --git a/spec/models/info_request_spec.rb b/spec/models/info_request_spec.rb
index adc0ab676..b1d10a51d 100644
--- a/spec/models/info_request_spec.rb
+++ b/spec/models/info_request_spec.rb
@@ -407,12 +407,15 @@ describe InfoRequest do
@global_rule = mock_model(CensorRule, :apply_to_text! => nil)
@user_rule = mock_model(CensorRule, :apply_to_text! => nil)
@request_rule = mock_model(CensorRule, :apply_to_text! => nil)
+ @body_rule = mock_model(CensorRule, :apply_to_text! => nil)
@user = mock_model(User, :censor_rules => [@user_rule])
+ @body = mock_model(PublicBody, :censor_rules => [@body_rule])
@info_request = InfoRequest.new(:prominence => 'normal',
:awaiting_description => true,
:title => 'title')
@info_request.stub!(:user).and_return(@user)
@info_request.stub!(:censor_rules).and_return([@request_rule])
+ @info_request.stub!(:public_body).and_return(@body)
@text = 'some text'
CensorRule.stub!(:global).and_return(mock('global context', :all => [@global_rule]))
end
@@ -432,6 +435,11 @@ describe InfoRequest do
lambda{ @info_request.apply_censor_rules_to_text!(@text) }.should_not raise_error
end
+ it 'should apply a rule from the body associated with the request' do
+ @body_rule.should_receive(:apply_to_text!).with(@text)
+ @info_request.apply_censor_rules_to_text!(@text)
+ end
+
it 'should apply a request rule' do
@request_rule.should_receive(:apply_to_text!).with(@text)
@info_request.apply_censor_rules_to_text!(@text)