diff --git a/app/models/invitation.rb b/app/models/invitation.rb index 992e3f6bebdb24159b477500e6872e5dcfbd73c3..4ccbc3322e4dea7d57a464ac2fb97e7cb6165f9e 100644 --- a/app/models/invitation.rb +++ b/app/models/invitation.rb @@ -71,7 +71,8 @@ class Invitation < ActiveRecord::Base # @return [Invitation] self def send! self.attach_recipient! - + puts self.recipient.inspect + # Sets an instance variable in User (set by devise invitable) # This determines whether an email should be sent to the recipient. recipient.skip_invitation = self.skip_email? diff --git a/app/models/user.rb b/app/models/user.rb index c595ec72690731abb0c7e567804ce8ca3505e9c4..733de5159db2948c4c12c5aecbce720649448bcf 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -92,7 +92,7 @@ class User < ActiveRecord::Base user = User.new user.generate_keys user.send(:generate_invitation_token) - #user.invitations_to_me << invitation + user.email = invitation.identifier if invitation.service == 'email' # we need to make a custom validator here to make this safer user.save(:validate => false) user diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 7c472fd6cf3378762d172429a1b76e7b456c06e9..2834707367eb21c0636aed53c9d5b8b4e75407e5 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -367,6 +367,27 @@ describe User do end end + describe '.find_or_create_by_invitation' do + + end + + describe '.create_from_invitation!' do + before do + @identifier = 'max@foobar.com' + @inv = Factory.build(:invitation, :admin => true, :service => 'email', :identifier => @identifier) + @user = User.create_from_invitation!(@inv) + end + + it 'creates a persisted user' do + @user.should be_persisted + end + + it 'sets the email if the service is email' do + @user.email.should == @inv.identifier + end + + end + describe 'update_user_preferences' do before do @pref_count = UserPreference::VALID_EMAIL_TYPES.count