From aef9248d7bf57e42fc80c93741d5da9e7cfab2b7 Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Tue, 31 Jul 2012 16:29:23 +0000 Subject: [PATCH] Fixing usp_id conflict between stoa plugin and templates --- plugins/stoa/lib/ext/person.rb | 2 +- plugins/stoa/test/unit/person_test.rb | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/stoa/lib/ext/person.rb b/plugins/stoa/lib/ext/person.rb index ef8f2f7..a2a467a 100644 --- a/plugins/stoa/lib/ext/person.rb +++ b/plugins/stoa/lib/ext/person.rb @@ -6,7 +6,7 @@ class Person validate :usp_id_or_invitation, :if => lambda { |person| person.environment && person.environment.plugin_enabled?(StoaPlugin)} def usp_id_or_invitation - if usp_id.blank? && (invitation_code.blank? || !invitation_task) + if usp_id.blank? && !is_template && (invitation_code.blank? || !invitation_task) errors.add(:usp_id, "can't register without usp_id or a valid invitation code") end end diff --git a/plugins/stoa/test/unit/person_test.rb b/plugins/stoa/test/unit/person_test.rb index 9f87d78..2d925cc 100644 --- a/plugins/stoa/test/unit/person_test.rb +++ b/plugins/stoa/test/unit/person_test.rb @@ -18,7 +18,7 @@ class StoaPlugin::Person < ActiveSupport::TestCase assert another_person.errors.invalid?(:usp_id) end - should 'allow nil usp_id only if person has an invitation_code' do + should 'allow nil usp_id only if person has an invitation_code or is a template' do person = Person.new(:environment => environment) person.valid? assert person.errors.invalid?(:usp_id) @@ -26,7 +26,11 @@ class StoaPlugin::Person < ActiveSupport::TestCase Task.create!(:code => 12345678) person.invitation_code = 12345678 person.valid? + assert !person.errors.invalid?(:usp_id) + person.invitation_code = nil + person.is_template = true + person.valid? assert !person.errors.invalid?(:usp_id) end -- libgit2 0.21.2