aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/comment.rb4
-rw-r--r--app/models/contact_validator.rb4
-rw-r--r--app/models/info_request.rb5
-rw-r--r--app/models/outgoing_message.rb4
-rw-r--r--app/models/public_body.rb12
-rw-r--r--app/models/public_body_tag.rb4
-rw-r--r--app/models/raw_email.rb4
-rw-r--r--app/models/user.rb6
-rw-r--r--vendor/plugins/strip_attributes/lib/strip_attributes.rb5
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