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