* Initial invitation work * Add more invitation code * Add proper registration page * Fix up tests * Fix failings * Fix spec * Add self-serve auth config * Add registered condition * Change profile image call and registered_at test * Change comment * Fix copy test * Stub emojipedia * Linting * Add registered at to factory * Ensure registered for user tag * Update app/views/internal/invitations/index.html.erb Co-authored-by: Michael Kohl <citizen428@dev.to> * Update app/controllers/internal/invitations_controller.rb Co-authored-by: Michael Kohl <citizen428@dev.to> * Slight changes * Update recover password flow * Update app/views/internal/invitations/index.html.erb Co-authored-by: Michael Kohl <citizen428@dev.to> * Update app/controllers/internal/invitations_controller.rb Co-authored-by: Michael Kohl <citizen428@dev.to> * Update db/schema.rb Co-authored-by: Michael Kohl <citizen428@dev.to>
29 lines
1.2 KiB
Ruby
29 lines
1.2 KiB
Ruby
class InvitationsController < Devise::InvitationsController
|
|
def update
|
|
# Copied from https://github.com/scambra/devise_invitable/blob/master/app/controllers/devise/invitations_controller.rb
|
|
# And edited. This is a common devise pattern, similar to OmniauthCallbacksController.
|
|
raw_invitation_token = update_resource_params[:invitation_token]
|
|
self.resource = accept_resource
|
|
invitation_accepted = resource.errors.empty?
|
|
|
|
yield resource if block_given?
|
|
|
|
if invitation_accepted
|
|
resource.registered = true
|
|
resource.registered_at = Time.current
|
|
if resource.class.allow_insecure_sign_in_after_accept
|
|
flash_message = resource.active_for_authentication? ? :updated : :updated_not_active
|
|
set_flash_message :notice, flash_message if is_flashing_format?
|
|
resource.after_database_authentication
|
|
sign_in(resource_name, resource)
|
|
redirect_to onboarding_path
|
|
else
|
|
set_flash_message :notice, :updated_not_active if is_flashing_format?
|
|
respond_with resource, location: new_session_path(resource_name)
|
|
end
|
|
else
|
|
resource.invitation_token = raw_invitation_token
|
|
respond_with_navigational(resource) { render :edit }
|
|
end
|
|
end
|
|
end
|