From 55c79e0ce0e931758addd3f883fc42588ddc13d9 Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Tue, 31 Jul 2012 19:30:28 +0000 Subject: [PATCH] Do not allow usp id as empty string --- plugins/stoa/lib/ext/person.rb | 4 ++++ plugins/stoa/test/unit/person_test.rb | 7 +++++++ 2 files changed, 11 insertions(+), 0 deletions(-) diff --git a/plugins/stoa/lib/ext/person.rb b/plugins/stoa/lib/ext/person.rb index ef8f2f7..da15590 100644 --- a/plugins/stoa/lib/ext/person.rb +++ b/plugins/stoa/lib/ext/person.rb @@ -5,6 +5,10 @@ class Person settings_items :invitation_code validate :usp_id_or_invitation, :if => lambda { |person| person.environment && person.environment.plugin_enabled?(StoaPlugin)} + before_validation do |person| + person.usp_id = nil if person.usp_id.blank? + end + def usp_id_or_invitation if usp_id.blank? && (invitation_code.blank? || !invitation_task) errors.add(:usp_id, "can't register without usp_id or a valid invitation code") diff --git a/plugins/stoa/test/unit/person_test.rb b/plugins/stoa/test/unit/person_test.rb index 9f87d78..c059dcb 100644 --- a/plugins/stoa/test/unit/person_test.rb +++ b/plugins/stoa/test/unit/person_test.rb @@ -18,6 +18,13 @@ class StoaPlugin::Person < ActiveSupport::TestCase assert another_person.errors.invalid?(:usp_id) end + should 'not allow usp_id as an empty string' do + person = Person.new(:usp_id => '') + person.valid? + + assert_nil person.usp_id + end + should 'allow nil usp_id only if person has an invitation_code' do person = Person.new(:environment => environment) person.valid? -- libgit2 0.21.2