Sha256: b7f920f88f4b6ea835937ba825fde3d47f0470c1034b65377546155c0d3fc297

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

class InvitationsController < ApplicationController
  include Devise::Controllers::InternalHelpers
  include Devise::Controllers::Common

  before_filter :authenticate_resource!, :only => [:new, :create]
  before_filter :require_no_authentication, :only => [:edit, :update]
  helper_method :after_sign_in_path_for

  # POST /resource/invitation
  def create
    self.resource = resource_class.send(send_instructions_with, params[resource_name])

    if resource.errors.empty?
      set_flash_message :notice, :send_instructions
      redirect_to after_sign_in_path_for(resource_name)
    else
      render_with_scope :new
    end
  end

  # GET /resource/invitation/accept?invitation_token=abcdef
  def edit
    self.resource = resource_class.new
    resource.invitation_token = params[:invitation_token]
    render_with_scope :edit
  end

  # PUT /resource/invitation
  def update
    self.resource = resource_class.accept_invitation!(params[resource_name])

    if resource.errors.empty?
      set_flash_message :notice, :updated
      sign_in_and_redirect(resource_name, resource)
    else
      render_with_scope :edit
    end
  end

  protected
  def send_instructions_with
    :send_invitation
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
devise_invitable-0.2.1 app/controllers/invitations_controller.rb