diff --git a/app/controllers/usuaries_controller.rb b/app/controllers/usuaries_controller.rb index 7621489e..3f672110 100644 --- a/app/controllers/usuaries_controller.rb +++ b/app/controllers/usuaries_controller.rb @@ -83,16 +83,19 @@ class UsuariesController < ApplicationController # Enviar la invitación si es necesario y agregar al sitio invitaciones.each do |invitacion| attributes = { email: invitacion.address } + options = { skip_invitation: true } next if Usuarie.where(id: @site.roles.pluck(:usuarie_id)).find_by(attributes) - usuarie = Usuarie.find_by(attributes).tap do |u| - u.send(:send_devise_notification, :invitation_instructions, nil) + usuarie = Usuarie.find_by attributes + usuarie ||= Usuarie.invite!(attributes, nil, options).tap do |u| + u.generate_invitation_token! end - usuarie ||= Usuarie.invite! attributes - @site.roles.create(usuarie: usuarie, temporal: true, rol: invited_as) + + # XXX: La invitación tiene que ser enviada luego de crear el rol + usuarie.send(:send_devise_notification, :invitation_instructions, nil) end redirect_to site_usuaries_path(@site)