2019-07-30 21:29:24 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2020-06-12 20:03:43 +00:00
|
|
|
# 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
|
2018-03-25 17:30:42 +00:00
|
|
|
class Users::SessionsController < Devise::SessionsController
|
2019-07-30 21:29:24 +00:00
|
|
|
layout 'layouts/apified', only: :new
|
|
|
|
respond_to :json, only: :new
|
2018-06-21 15:54:35 +00:00
|
|
|
|
|
|
|
def new
|
|
|
|
@theme = 'minimal'
|
|
|
|
super
|
|
|
|
end
|
2018-03-25 17:30:42 +00:00
|
|
|
|
2019-07-30 21:29:24 +00:00
|
|
|
def create
|
2018-06-21 15:54:35 +00:00
|
|
|
@theme = 'minimal'
|
|
|
|
|
2019-07-30 21:29:24 +00:00
|
|
|
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
|
2018-03-25 17:30:42 +00:00
|
|
|
|
2019-07-30 21:29:24 +00:00
|
|
|
# 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
|
2020-06-10 22:31:47 +00:00
|
|
|
render json: ["Incorrect password. Please enter your #{Houdini.general.name} %> password."], status: :unprocessable_entity
|
2019-07-30 21:29:24 +00:00
|
|
|
end
|
2018-03-25 17:30:42 +00:00
|
|
|
end
|
|
|
|
end
|