Enable flipflop on api requests
This commit is contained in:
parent
48701e80bd
commit
549eca44cb
4 changed files with 11 additions and 5 deletions
|
@ -38,7 +38,10 @@ class API::V1::DossiersController < APIController
|
||||||
def fetch_procedure_and_check_token
|
def fetch_procedure_and_check_token
|
||||||
@procedure = Procedure.for_api.find(params[:procedure_id])
|
@procedure = Procedure.for_api.find(params[:procedure_id])
|
||||||
|
|
||||||
if !valid_token_for_procedure?(@procedure)
|
administrateur = find_administrateur_for_token(@procedure)
|
||||||
|
if administrateur
|
||||||
|
Current.administrateur = administrateur
|
||||||
|
else
|
||||||
render json: {}, status: :unauthorized
|
render json: {}, status: :unauthorized
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,10 @@ class API::V1::ProceduresController < APIController
|
||||||
def fetch_procedure_and_check_token
|
def fetch_procedure_and_check_token
|
||||||
@procedure = Procedure.for_api.find(params[:id])
|
@procedure = Procedure.for_api.find(params[:id])
|
||||||
|
|
||||||
if !valid_token_for_procedure?(@procedure)
|
administrateur = find_administrateur_for_token(@procedure)
|
||||||
|
if administrateur
|
||||||
|
Current.administrateur = administrateur
|
||||||
|
else
|
||||||
render json: {}, status: :unauthorized
|
render json: {}, status: :unauthorized
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,8 @@ class APIController < ApplicationController
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def valid_token_for_procedure?(procedure)
|
def find_administrateur_for_token(procedure)
|
||||||
procedure.administrateurs.any? do |administrateur|
|
procedure.administrateurs.find do |administrateur|
|
||||||
administrateur.valid_api_token?(token)
|
administrateur.valid_api_token?(token)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,7 +5,7 @@ describe APIController, type: :controller do
|
||||||
let(:procedure) { create(:procedure) }
|
let(:procedure) { create(:procedure) }
|
||||||
let(:admin) { procedure.administrateurs.first }
|
let(:admin) { procedure.administrateurs.first }
|
||||||
|
|
||||||
subject { controller.send(:'valid_token_for_procedure?', procedure) }
|
subject { !!controller.send(:find_administrateur_for_token, procedure) }
|
||||||
|
|
||||||
context 'when the admin has not any token' do
|
context 'when the admin has not any token' do
|
||||||
context 'and the token is not given' do
|
context 'and the token is not given' do
|
||||||
|
|
Loading…
Add table
Reference in a new issue