Enable flipflop on api requests

This commit is contained in:
Paul Chavard 2019-03-06 15:21:25 +01:00
parent 48701e80bd
commit 549eca44cb
4 changed files with 11 additions and 5 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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