From e0fb8a08cba45b4042e5a0a7d19145112ec4aa08 Mon Sep 17 00:00:00 2001 From: Maxwell Salzberg <maxwell@joindiaspora.com> Date: Wed, 17 Aug 2011 14:56:31 -0700 Subject: [PATCH] set the user email if inviting by email --- app/models/invitation.rb | 3 ++- app/models/user.rb | 2 +- spec/models/user_spec.rb | 21 +++++++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/models/invitation.rb b/app/models/invitation.rb index 992e3f6beb..4ccbc3322e 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 c595ec7269..733de5159d 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 7c472fd6cf..2834707367 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 -- GitLab