Skip to content

Commit

Permalink
Fix invite flow for org admins (#3083)
Browse files Browse the repository at this point in the history
* Fix invite flow for org admins

* Don't update unless it's an org user

* Fix missing webmock version

* fixy

* One more fix

* Fix spec
  • Loading branch information
Daniel Orner authored Aug 14, 2022
1 parent b595aa0 commit 6e49e6a
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 0 deletions.
6 changes: 6 additions & 0 deletions app/services/partner_invite_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ def initialize(partner:)
def call
return self unless valid?

existing_user = User.find_by(email: partner.email)
if existing_user && existing_user.partner_id.nil?
existing_user.update!(partner_id: partner.profile.id)
return
end

partner.update!(status: 'invited')
# skip invitation is necessary because when email will be send for this situation needs partner reference updated,
# and, in this case, we create invite, reload object and send invitation email.
Expand Down
5 changes: 5 additions & 0 deletions app/services/partner_user_invite_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ def call
if existing_partner_user.present?
existing_partner_user.invite!
else
existing_user = User.find_by(email: email)
if existing_user && existing_user.partner_id.nil?
existing_user.update!(partner_id: partner.profile.id)
return
end
User.invite!(email: email, partner: partner.profile)
end
end
Expand Down
1 change: 1 addition & 0 deletions spec/services/partner_user_invite_service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
context "when the partner user doesnt exist in database" do
before do
allow(User).to receive(:invite!)
allow(User).to receive(:find_by).with(email: email)
allow(User).to receive(:find_by).with(email: email, partner: partner.profile)
end

Expand Down

0 comments on commit 6e49e6a

Please sign in to comment.