Commit aef9248d7bf57e42fc80c93741d5da9e7cfab2b7

Authored by Rodrigo Souto
1 parent 692325d6

Fixing usp_id conflict between stoa plugin and templates

plugins/stoa/lib/ext/person.rb
... ... @@ -6,7 +6,7 @@ class Person
6 6 validate :usp_id_or_invitation, :if => lambda { |person| person.environment && person.environment.plugin_enabled?(StoaPlugin)}
7 7  
8 8 def usp_id_or_invitation
9   - if usp_id.blank? && (invitation_code.blank? || !invitation_task)
  9 + if usp_id.blank? && !is_template && (invitation_code.blank? || !invitation_task)
10 10 errors.add(:usp_id, "can't register without usp_id or a valid invitation code")
11 11 end
12 12 end
... ...
plugins/stoa/test/unit/person_test.rb
... ... @@ -18,7 +18,7 @@ class StoaPlugin::Person < ActiveSupport::TestCase
18 18 assert another_person.errors.invalid?(:usp_id)
19 19 end
20 20  
21   - should 'allow nil usp_id only if person has an invitation_code' do
  21 + should 'allow nil usp_id only if person has an invitation_code or is a template' do
22 22 person = Person.new(:environment => environment)
23 23 person.valid?
24 24 assert person.errors.invalid?(:usp_id)
... ... @@ -26,7 +26,11 @@ class StoaPlugin::Person < ActiveSupport::TestCase
26 26 Task.create!(:code => 12345678)
27 27 person.invitation_code = 12345678
28 28 person.valid?
  29 + assert !person.errors.invalid?(:usp_id)
29 30  
  31 + person.invitation_code = nil
  32 + person.is_template = true
  33 + person.valid?
30 34 assert !person.errors.invalid?(:usp_id)
31 35 end
32 36  
... ...