From a6b5dfe60d1ecd1e4025467ee0cfdcf7886232fe Mon Sep 17 00:00:00 2001 From: Braulio Bhavamitra Date: Mon, 12 Jan 2015 19:40:40 -0300 Subject: [PATCH] Normalize email before save --- app/models/user.rb | 6 ++++++ db/migrate/20150112233715_normalize_users_email.rb | 11 +++++++++++ 2 files changed, 17 insertions(+), 0 deletions(-) create mode 100644 db/migrate/20150112233715_normalize_users_email.rb diff --git a/app/models/user.rb b/app/models/user.rb index 9f16bb9..81f2b3d 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -98,6 +98,7 @@ class User < ActiveRecord::Base validates_length_of :email, :within => 3..100, :if => (lambda {|user| !user.email.blank?}) validates_uniqueness_of :login, :email, :case_sensitive => false, :scope => :environment_id before_save :encrypt_password + before_save :normalize_email validates_format_of :email, :with => Noosfero::Constants::EMAIL_FORMAT, :if => (lambda {|user| !user.email.blank?}) validates_inclusion_of :terms_accepted, :in => [ '1' ], :if => lambda { |u| ! u.terms_of_use.blank? }, :message => N_('{fn} must be checked in order to signup.').fix_i18n @@ -328,6 +329,11 @@ class User < ActiveRecord::Base end protected + + def normalize_email + self.email = self.email.squish.downcase + end + # before filter def encrypt_password return if password.blank? diff --git a/db/migrate/20150112233715_normalize_users_email.rb b/db/migrate/20150112233715_normalize_users_email.rb new file mode 100644 index 0000000..374ec7e --- /dev/null +++ b/db/migrate/20150112233715_normalize_users_email.rb @@ -0,0 +1,11 @@ +class NormalizeUsersEmail < ActiveRecord::Migration + def up + User.find_each do |u| + u.update_column :email, u.send(:normalize_email) + end + end + + def down + say "this migration can't be reverted" + end +end -- libgit2 0.21.2