diff --git a/app/controllers/usuaries_controller.rb b/app/controllers/usuaries_controller.rb index ab116572..84bcc13f 100644 --- a/app/controllers/usuaries_controller.rb +++ b/app/controllers/usuaries_controller.rb @@ -86,15 +86,17 @@ class UsuariesController < ApplicationController next if Usuarie.where(id: @site.roles.pluck(:usuarie_id)).find_by(attributes) - usuarie = Usuarie.find_by attributes - usuarie ||= Usuarie.invite!(attributes).tap do |u| - u.send :generate_invitation_token! + Usuarie.transaction do + usuarie = Usuarie.find_by attributes + usuarie ||= Usuarie.invite!(attributes).tap do |u| + u.send :generate_invitation_token! + end + + @site.roles.create(usuarie: usuarie, temporal: true, rol: invited_as) + + # XXX: La invitación tiene que ser enviada luego de crear el rol + usuarie.deliver_invitation end - - @site.roles.create(usuarie: usuarie, temporal: true, rol: invited_as) - - # XXX: La invitación tiene que ser enviada luego de crear el rol - usuarie.deliver_invitation end redirect_to site_usuaries_path(@site)