Class: Magic::Link::MagicLinksController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- Magic::Link::MagicLinksController
- Defined in:
- app/controllers/magic/link/magic_links_controller.rb
Instance Method Summary collapse
Instance Method Details
#authenticate ⇒ Object
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.after_sign_in_path) 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) sign_in user redirect_to main_app.send(Magic::Link.after_sign_in_path) elsif email && token flash[:alert] = "Your sign in token is invalid" redirect_to magic_link.new_magic_link_path end end |
#create ⇒ Object
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.send_login_instructions redirect_to main_app.root_path, notice: "Check your email for a sign in link!" end |
#new ⇒ Object
7 8 9 |
# File 'app/controllers/magic/link/magic_links_controller.rb', line 7 def new @magic_link = MagicLink.new end |