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,7 +6,7 @@ class Person
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 def usp_id_or_invitation 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 errors.add(:usp_id, "can't register without usp_id or a valid invitation code") 10 errors.add(:usp_id, "can't register without usp_id or a valid invitation code")
11 end 11 end
12 end 12 end
plugins/stoa/test/unit/person_test.rb
@@ -18,7 +18,7 @@ class StoaPlugin::Person < ActiveSupport::TestCase @@ -18,7 +18,7 @@ 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 '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 person = Person.new(:environment => environment) 22 person = Person.new(:environment => environment)
23 person.valid? 23 person.valid?
24 assert person.errors.invalid?(:usp_id) 24 assert person.errors.invalid?(:usp_id)
@@ -26,7 +26,11 @@ class StoaPlugin::Person < ActiveSupport::TestCase @@ -26,7 +26,11 @@ class StoaPlugin::Person < ActiveSupport::TestCase
26 Task.create!(:code => 12345678) 26 Task.create!(:code => 12345678)
27 person.invitation_code = 12345678 27 person.invitation_code = 12345678
28 person.valid? 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 assert !person.errors.invalid?(:usp_id) 34 assert !person.errors.invalid?(:usp_id)
31 end 35 end
32 36