Sha256: e312f7f202781cf4a57dd5f85f29b2986039b4d0844ce0e8f9afaa7e399f4c02

Contents?: true

Size: 817 Bytes

Versions: 1

Compression:

Stored size: 817 Bytes

Contents

module Peoplefinder
  class TokensController < ApplicationController
    skip_before_action :ensure_user
    before_action :set_desired_path, only: [:show]

    def create
      @token = Token.new(token_params)
      if @token.save
        TokenMailer.new_token_email(@token).deliver
        render
      else
        render action: :new
      end
    end

    def show
      token = Token.where(value: params[:id]).first
      return forbidden unless token

      person = Person.from_token(token)
      session['current_user_id'] = person.id
      redirect_to_desired_path
    end

  protected

    def token_params
      params.require(:token).permit([:user_email])
    end

    def set_desired_path
      if params[:desired_path]
        session[:desired_path] = params[:desired_path]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
peoplefinder-0.0.2 app/controllers/peoplefinder/tokens_controller.rb