Sha256: c50e30d987ce4d2e6b408e1ca78fea7c3121d57b4c5a557cfd854f98f21e4868
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
module DeviseInvitable::Controllers::Registrations def self.included(controller) controller.send :around_filter, :keep_invitation_info, :only => :create end protected def destroy_if_previously_invited hash = params[resource_name] if hash && hash[:email] resource = resource_class.where(:email => hash[:email], :encrypted_password => '').first if resource @invitation_info = {} @invitation_info[:invitation_sent_at] = resource[:invitation_sent_at] @invitation_info[:invited_by_id] = resource[:invited_by_id] @invitation_info[:invited_by_type] = resource[:invited_by_type] resource.destroy end end end def keep_invitation_info resource_invitable = resource_class.devise_modules.include?(:invitable) destroy_if_previously_invited if resource_invitable yield reset_invitation_info if resource_invitable end def reset_invitation_info # Restore info about the last invitation (for later reference) # Reset the invitation_info only, if invited_by_id is still nil at this stage: resource = resource_class.where(:email => params[resource_name][:email], :invited_by_id => nil).first if resource && @invitation_info resource[:invitation_sent_at] = @invitation_info[:invitation_sent_at] resource[:invited_by_id] = @invitation_info[:invited_by_id] resource[:invited_by_type] = @invitation_info[:invited_by_type] resource.save! end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
devise_invitable-1.0.2 | lib/devise_invitable/controllers/registrations.rb |