houdini/app/controllers/users/sessions_controller.rb
2020-06-15 10:26:57 -05:00

37 lines
1.1 KiB
Ruby

# frozen_string_literal: true
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
class Users::SessionsController < Devise::SessionsController
layout 'layouts/apified', only: :new
respond_to :json, only: :new
def new
@theme = 'minimal'
super
end
def create
@theme = 'minimal'
respond_to do |format|
format.json do
warden.authenticate!(scope: resource_name, recall: "#{controller_path}#new")
render status: 200, json: { status: 'Success' }
end
end
end
# post /users/confirm_auth
# A simple action to confirm an entered password for a user who is already signed in
def confirm_auth
if current_user.valid_password?(params[:password])
tok = SecureRandom.uuid
session[:pw_token] = tok
session[:pw_timestamp] = Time.current.to_s
render json: { token: tok }, status: :ok
else
render json: ["Incorrect password. Please enter your #{Houdini.general.name} %> password."], status: :unprocessable_entity
end
end
end