Sha256: 321aac06b01789a5c53f5559b78f2118ec2b9bf5b812489f67dfd61aab0ae61c

Contents?: true

Size: 1.73 KB

Versions: 1

Compression:

Stored size: 1.73 KB

Contents

# This controller is responsible for confirming any user email. It's also
# responsible for resending the confirmation email on demand by the user.
class Janus::ConfirmationsController < ApplicationController
  include Janus::InternalHelpers

  helper JanusHelper

  def show
    self.resource = resource_class.find_for_confirmation(params[resource_class.confirmation_key])

    if resource
      resource.confirm!

      respond_to do |format|
        format.html { redirect_to root_url, :notice => t('flash.janus.confirmations.edit.confirmed') }
        format.any  { head :ok }
      end
    else
      respond_to do |format|
        format.html do
          self.resource = resource_class.new
          resource.errors.add(:base, :invalid_token)
          render 'new'
        end

        format.any { head :bad_request }
      end
    end
  end

  def new
    self.resource = resource_class.new
    respond_with(resource)
  end

  def create
    self.resource = resource_class.find_for_database_authentication(params[resource_name])

    if resource
      deliver_confirmation_instructions

      respond_to do |format|
        format.html { redirect_to root_url, :notice => t('flash.janus.confirmations.create.email_sent') }
        format.any  { head :ok }
      end
    else
      respond_to do |format|
        format.html do
          self.resource = resource_class.new
          resource.errors.add(:base, :not_found)
          render 'new'
        end

        format.any { head :not_found }
      end
    end
  end

  # Simple wrapper for Mailer#confirmation_instructions.deliver to
  # allow customization of the email (eg: to pass additional data).
  def deliver_confirmation_instructions
    mailer_class.confirmation_instructions(resource).deliver
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
janus-0.8.1 lib/janus/controllers/confirmations_controller.rb