|
class Users::InvitationsController < Devise::InvitationsController
before_filter :update_sanitized_params, only: :update
# PUT /resource/invitation
def update
respond_to do |format|
format.js do
invitation_token = Devise.token_generator.digest(resource_class, :invitation_token, update_resource_params[:invitation_token])
self.resource = resource_class.where(invitation_token: invitation_token).first
resource.skip_password = true
resource.update_attributes update_resource_params.except(:invitation_token)
end
format.html do
invitation_token = Devise.token_generator.digest(resource_class, :invitation_token, update_resource_params[:invitation_token])
@user = User.where(email: params[:user][:email]).first
@user.update(first_name: params[:user][:first_name], last_name: params[:user][:last_name])
@user.update_attributes update_resource_params.except(:invitation_token)
@analytics.track_invitation_accepted(@user)
Resque.enqueue(SendSignupMessageSimple, @user.id)
#Mark invites as accepted
invites = Invite.where(email: @user.email)
invites.each {|i| i.update(invited: true, ) }
super
end
end
end
protected
def update_sanitized_params
devise_parameter_sanitizer.for(:accept_invitation) do |u|
u.permit(:password, :password_confirmation, :invitation_token)
end
end
end
|