aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/info_request.rb
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2012-08-22 08:17:16 +0100
committerLouise Crow <louise.crow@gmail.com>2012-08-22 08:17:16 +0100
commit17e2024962b84f759b1f2bfb13564d6626f0d6f0 (patch)
tree70c20452176bfce76ef5a34b698e6ac615f66c23 /app/models/info_request.rb
parente3887f042ba1309985e58ce553de0de05227dc56 (diff)
parent19d6e36039318cdb1f9aa9e0c4731b500b3b0aeb (diff)
Merge branch 'release/0.6.3' into wdtk
Conflicts: app/controllers/admin_request_controller.rb app/views/request/show.rhtml spec/models/info_request_spec.rb
Diffstat (limited to 'app/models/info_request.rb')
-rw-r--r--app/models/info_request.rb27
1 files changed, 14 insertions, 13 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index 7e69a5cda..a7d09401b 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -136,7 +136,7 @@ class InfoRequest < ActiveRecord::Base
else
fake_slug = external_user_name.parameterize
end
- public_body.url_name + "_"+fake_slug
+ (public_body.url_name || "") + "_" + fake_slug
else
user.url_name
end
@@ -995,27 +995,28 @@ public
return ret.reverse
end
+ # Get the list of censor rules that apply to this request
+ def applicable_censor_rules
+ 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
+ return applicable_rules.flatten
+ end
+
# Call groups of censor rules
def apply_censor_rules_to_text!(text)
- for censor_rule in self.censor_rules
+ self.applicable_censor_rules.each do |censor_rule|
censor_rule.apply_to_text!(text)
end
- if self.user # requests during construction have no user
- for censor_rule in self.user.censor_rules
- censor_rule.apply_to_text!(text)
- end
- end
+ return text
end
def apply_censor_rules_to_binary!(binary)
- for censor_rule in self.censor_rules
+ self.applicable_censor_rules.each do |censor_rule|
censor_rule.apply_to_binary!(binary)
end
- if self.user # requests during construction have no user
- for censor_rule in self.user.censor_rules
- censor_rule.apply_to_binary!(binary)
- end
- end
+ return binary
end
def is_owning_user?(user)