Commit aef9248d7bf57e42fc80c93741d5da9e7cfab2b7
1 parent
692325d6
Exists in
master
and in
29 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 | ... | ... |