Commit 55c79e0ce0e931758addd3f883fc42588ddc13d9

Authored by Rodrigo Souto
1 parent 692325d6

Do not allow usp id as empty string

plugins/stoa/lib/ext/person.rb
@@ -5,6 +5,10 @@ class Person @@ -5,6 +5,10 @@ class Person
5 settings_items :invitation_code 5 settings_items :invitation_code
6 validate :usp_id_or_invitation, :if => lambda { |person| person.environment && person.environment.plugin_enabled?(StoaPlugin)} 6 validate :usp_id_or_invitation, :if => lambda { |person| person.environment && person.environment.plugin_enabled?(StoaPlugin)}
7 7
  8 + before_validation do |person|
  9 + person.usp_id = nil if person.usp_id.blank?
  10 + end
  11 +
8 def usp_id_or_invitation 12 def usp_id_or_invitation
9 if usp_id.blank? && (invitation_code.blank? || !invitation_task) 13 if usp_id.blank? && (invitation_code.blank? || !invitation_task)
10 errors.add(:usp_id, "can't register without usp_id or a valid invitation code") 14 errors.add(:usp_id, "can't register without usp_id or a valid invitation code")
plugins/stoa/test/unit/person_test.rb
@@ -18,6 +18,13 @@ class StoaPlugin::Person < ActiveSupport::TestCase @@ -18,6 +18,13 @@ class StoaPlugin::Person < ActiveSupport::TestCase
18 assert another_person.errors.invalid?(:usp_id) 18 assert another_person.errors.invalid?(:usp_id)
19 end 19 end
20 20
  21 + should 'not allow usp_id as an empty string' do
  22 + person = Person.new(:usp_id => '')
  23 + person.valid?
  24 +
  25 + assert_nil person.usp_id
  26 + end
  27 +
21 should 'allow nil usp_id only if person has an invitation_code' do 28 should 'allow nil usp_id only if person has an invitation_code' do
22 person = Person.new(:environment => environment) 29 person = Person.new(:environment => environment)
23 person.valid? 30 person.valid?