diff --git a/app/controllers/admin/invitations_controller.rb b/app/controllers/admin/invitations_controller.rb index 940bde2..fbe3f5d 100644 --- a/app/controllers/admin/invitations_controller.rb +++ b/app/controllers/admin/invitations_controller.rb @@ -29,6 +29,24 @@ class Admin::InvitationsController < Admin::BaseController end end + def resend + @invitation = User.find(params[:id]) + + if @invitation.invitation_accepted_at.present? + redirect_to admin_invitations_path, alert: "Cannot resend an accepted invitation." + return + end + + @invitation.update!( + invitation_token: SecureRandom.urlsafe_base64(32), + invitation_sent_at: Time.current + ) + + InvitationMailer.invite(@invitation).deliver_later + + redirect_to admin_invitations_path, notice: "Invitation resent to #{@invitation.email}" + end + def destroy @invitation = User.find(params[:id]) diff --git a/app/views/admin/invitations/index.html.erb b/app/views/admin/invitations/index.html.erb index 9b00a76..e5c3c92 100644 --- a/app/views/admin/invitations/index.html.erb +++ b/app/views/admin/invitations/index.html.erb @@ -65,7 +65,8 @@