diff options
author | Louise Crow <louise.crow@gmail.com> | 2012-08-14 11:20:51 +0100 |
---|---|---|
committer | Louise Crow <louise.crow@gmail.com> | 2012-08-14 11:20:51 +0100 |
commit | 5ad7ebf25cc684d68325681db4471e522ac31569 (patch) | |
tree | e85ddf44af95696a1a9c17d6b99e4c5e84915a17 /app/models/info_request.rb | |
parent | 8365808466eb5beb5a0ac64a4b68db3fef39cd43 (diff) |
Add concept of global censor rules as orthogonal to regex censor rules. Apply global rules to every request, not regex rules.
Diffstat (limited to 'app/models/info_request.rb')
-rw-r--r-- | app/models/info_request.rb | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb index 4c8181faa..9290ab77d 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -104,7 +104,7 @@ class InfoRequest < ActiveRecord::Base errors.add(:described_state, "is not a valid state") if !InfoRequest.enumerate_states.include? described_state end - + # The request must either be internal, in which case it has # a foreign key reference to a User object and no external_url or external_user_name, # or else be external in which case it has no user_id but does have an external_url, @@ -120,15 +120,15 @@ class InfoRequest < ActiveRecord::Base errors.add(:external_url, "must be null for an internal request") if !external_url.nil? end end - + def is_external? !external_url.nil? end - + def user_name is_external? ? external_user_name : user.name end - + def user_name_slug if is_external? if external_user_name.nil? @@ -708,10 +708,10 @@ public return self.public_body.is_followupable? end def recipient_name_and_email - return TMail::Address.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), + return TMail::Address.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 end @@ -997,10 +997,13 @@ public # Call groups of censor rules def apply_censor_rules_to_text!(text) - [self.censor_rules, self.user.try(:censor_rules), - CensorRule.regexps.all].flatten.compact.each do |censor_rule| - censor_rule.apply_to_text!(text) - end + applicable_rules = [self.censor_rules, CensorRule.global.all] + if self.user && !self.user.censor_rules.empty? + applicable_rules << self.user.censor_rules + end + applicable_rules.flatten.each do |censor_rule| + censor_rule.apply_to_text!(text) + end return text end |