diff options
author | francis <francis> | 2008-12-02 12:41:33 +0000 |
---|---|---|
committer | francis <francis> | 2008-12-02 12:41:33 +0000 |
commit | 24ecf2398d9c85ba71ec38ac3d80642429950a89 (patch) | |
tree | f90bc9b04d767f4b90d39e4d08f04b6f5ffa7a0c | |
parent | 0f3010fec8f66e964103b430ebbb543960baa912 (diff) |
Strip attributes.
-rw-r--r-- | app/models/comment.rb | 4 | ||||
-rw-r--r-- | app/models/contact_validator.rb | 4 | ||||
-rw-r--r-- | app/models/info_request.rb | 5 | ||||
-rw-r--r-- | app/models/outgoing_message.rb | 4 | ||||
-rw-r--r-- | app/models/public_body.rb | 12 | ||||
-rw-r--r-- | app/models/public_body_tag.rb | 4 | ||||
-rw-r--r-- | app/models/raw_email.rb | 4 | ||||
-rw-r--r-- | app/models/user.rb | 6 | ||||
-rw-r--r-- | vendor/plugins/strip_attributes/lib/strip_attributes.rb | 5 |
9 files changed, 30 insertions, 18 deletions
diff --git a/app/models/comment.rb b/app/models/comment.rb index a69284ae7..6596fe944 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -19,9 +19,11 @@ # Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: comment.rb,v 1.8 2008-10-28 13:04:20 francis Exp $ +# $Id: comment.rb,v 1.9 2008-12-02 12:41:33 francis Exp $ class Comment < ActiveRecord::Base + strip_attributes! + belongs_to :user #validates_presence_of :user # breaks during construction of new ones :( diff --git a/app/models/contact_validator.rb b/app/models/contact_validator.rb index 4898616f6..194154940 100644 --- a/app/models/contact_validator.rb +++ b/app/models/contact_validator.rb @@ -15,9 +15,11 @@ # Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: contact_validator.rb,v 1.23 2008-10-28 13:04:20 francis Exp $ +# $Id: contact_validator.rb,v 1.24 2008-12-02 12:41:33 francis Exp $ class ContactValidator < ActiveRecord::BaseWithoutTable + strip_attributes! + column :name, :string column :email, :string column :subject, :text diff --git a/app/models/info_request.rb b/app/models/info_request.rb index 7979c6f04..a8610d70a 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -23,12 +23,14 @@ # Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: info_request.rb,v 1.156 2008-11-21 01:50:06 francis Exp $ +# $Id: info_request.rb,v 1.157 2008-12-02 12:41:33 francis Exp $ require 'digest/sha1' require File.join(File.dirname(__FILE__),'../../vendor/plugins/acts_as_xapian/lib/acts_as_xapian') class InfoRequest < ActiveRecord::Base + strip_attributes! + validates_presence_of :title, :message => "^Please enter a summary of your request" validates_format_of :title, :with => /[a-z]/, :message => "^Please write a summary with some text in it", :if => Proc.new { |info_request| !info_request.title.nil? && !info_request.title.empty? } @@ -127,6 +129,7 @@ public write_attribute(:url_title, unique_url_title) end # Remove spaces from ends (for when used in emails etc.) + # Needed for legacy reasons, even though we call strip_attributes now def title title = read_attribute(:title) if title diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb index 0d14ba58e..933203fd3 100644 --- a/app/models/outgoing_message.rb +++ b/app/models/outgoing_message.rb @@ -21,9 +21,11 @@ # Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: outgoing_message.rb,v 1.74 2008-11-07 02:50:59 francis Exp $ +# $Id: outgoing_message.rb,v 1.75 2008-12-02 12:41:33 francis Exp $ class OutgoingMessage < ActiveRecord::Base + strip_attributes! + belongs_to :info_request validates_presence_of :info_request diff --git a/app/models/public_body.rb b/app/models/public_body.rb index 99e7e4f57..e389d559f 100644 --- a/app/models/public_body.rb +++ b/app/models/public_body.rb @@ -24,12 +24,14 @@ # Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: public_body.rb,v 1.123 2008-11-15 17:39:43 johncross Exp $ +# $Id: public_body.rb,v 1.124 2008-12-02 12:41:33 francis Exp $ require 'csv' require 'set' class PublicBody < ActiveRecord::Base + strip_attributes! + validates_presence_of :name validates_presence_of :url_name @@ -132,14 +134,6 @@ class PublicBody < ActiveRecord::Base self.first_letter = self.name[0,1].upcase end - # Strip whitespace for everything, see http://railsforum.com/viewtopic.php?id=969 - before_save(:clean_whitespace) - def clean_whitespace - self.name = self.name.strip - self.short_name = self.short_name.strip - end - - def validate # Request_email can be blank, meaning we don't have details if self.is_requestable? diff --git a/app/models/public_body_tag.rb b/app/models/public_body_tag.rb index b168adc1f..e8a971752 100644 --- a/app/models/public_body_tag.rb +++ b/app/models/public_body_tag.rb @@ -15,9 +15,11 @@ # Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: public_body_tag.rb,v 1.20 2008-10-28 13:04:20 francis Exp $ +# $Id: public_body_tag.rb,v 1.21 2008-12-02 12:41:33 francis Exp $ class PublicBodyTag < ActiveRecord::Base + strip_attributes! + validates_presence_of :public_body validates_presence_of :name diff --git a/app/models/raw_email.rb b/app/models/raw_email.rb index 46f25c21f..167c1afb5 100644 --- a/app/models/raw_email.rb +++ b/app/models/raw_email.rb @@ -13,9 +13,11 @@ # Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: raw_email.rb,v 1.3 2008-10-28 13:04:20 francis Exp $ +# $Id: raw_email.rb,v 1.4 2008-12-02 12:41:33 francis Exp $ class RawEmail < ActiveRecord::Base + # deliberately don't strip_attributes, so keeps raw email properly + has_one :incoming_message end diff --git a/app/models/user.rb b/app/models/user.rb index d4fbceb21..4b8404dd3 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -22,11 +22,13 @@ # Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: user.rb,v 1.75 2008-11-21 01:50:06 francis Exp $ +# $Id: user.rb,v 1.76 2008-12-02 12:41:33 francis Exp $ require 'digest/sha1' class User < ActiveRecord::Base + strip_attributes! + validates_presence_of :email, :message => "^Please enter your email address" validates_presence_of :name, :message => "^Please enter your name" @@ -93,6 +95,8 @@ class User < ActiveRecord::Base # The specific_user_login parameter says that login as a particular user is # expected, so no parallel registration form is being displayed. def self.authenticate_from_form(params, specific_user_login = false) + params[:email].strip! + if specific_user_login auth_fail_message = "Either the email or password was not recognised, please try again." else diff --git a/vendor/plugins/strip_attributes/lib/strip_attributes.rb b/vendor/plugins/strip_attributes/lib/strip_attributes.rb index 493db56bf..70f414654 100644 --- a/vendor/plugins/strip_attributes/lib/strip_attributes.rb +++ b/vendor/plugins/strip_attributes/lib/strip_attributes.rb @@ -1,11 +1,12 @@ module StripAttributes - # Strips whitespace from model fields and converts blank values to nil. + # Strips whitespace from model fields and leaves nil values as nil. + # XXX this differs from official StripAttributes, as it doesn't make blank cells null. def strip_attributes!(options = nil) before_validation do |record| attributes = StripAttributes.narrow(record.attributes, options) attributes.each do |attr, value| if value.respond_to?(:strip) - record[attr] = (value.blank?) ? nil : value.strip + record[attr] = (value.nil?) ? nil : value.strip end end end |