Class: Magic::Link::MagicLinksController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/magic/link/magic_links_controller.rb

Instance Method Summary collapse

Instance Method Details

#authenticateObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/controllers/magic/link/magic_links_controller.rb', line 17

def authenticate
  email = params[:email].presence
  token = params[:sign_in_token].presence
  user  = email && token && Magic::Link.user_class.find_by(email: email)

  # TODO: Handle a different user trying to sign in
  if token && send("#{Magic::Link.user_class.name.underscore}_signed_in?")
    flash[:alert] = "You are already signed in"
    redirect_to main_app.send(Magic::Link.)
  elsif user && token_matches?(user) && token_not_expired?(user)
    flash[:notice] = "You have signed in successfully"
    user.update_columns(sign_in_token: nil, sign_in_token_sent_at: nil)
     user
    redirect_to main_app.send(Magic::Link.)
  elsif email && token
    flash[:alert] = "Your sign in token is invalid"
    redirect_to magic_link.new_magic_link_path
  end
end

#createObject



11
12
13
14
15
# File 'app/controllers/magic/link/magic_links_controller.rb', line 11

def create
  @magic_link = MagicLink.new(permitted_params)
  @magic_link.
  redirect_to main_app.root_path, notice: "Check your email for a sign in link!"
end

#newObject



7
8
9
# File 'app/controllers/magic/link/magic_links_controller.rb', line 7

def new
  @magic_link = MagicLink.new
end