Commit aef9248d7bf57e42fc80c93741d5da9e7cfab2b7
1 parent
692325d6
Exists in
master
and in
22 other branches
Fixing usp_id conflict between stoa plugin and templates
Showing
2 changed files
with
6 additions
and
2 deletions
Show diff stats
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 | ... | ... |