si potrebbe fare anche con una variabile in sessione e basta.

la funzione chdir di php ti permette di impostare una cartella di lavoro dove il sistema andrà ad operare.

la mia idea:

se la variabile è true imposti con chdir la cartella dei files, viceversa non lo fai.

quando continuerai con il tuo codice verificherai giustamente se il file esiste e lo farai impostando i path in maniera relativa alla cartella corrente.

in questo modo la ricerca del file fallirà quando la variabile in sessione è false e quindi restuitirai un errore.

un esempio

Codice PHP:
<?php
/*
sono in /var/application
i files sono in /var/resources 
il file richiesto è /var/resources/files/pdf/09432.pdf
*/



//la directory corrente per eventualmente tornare al punto di partenza
$current_path=getcwd();

if(
$_SESSION['user_download'] == true){
    
chdir('../resources');
    }

if(
is_file('./files/pdf/09432.pdf') && is_readable('./files/pdf/09432.pdf')){
    
//download del file
    
}
else{
    
//errore, redirect o altro
    
}

//nel caso in cui vuoi tornare alla cartella di origine DA CUI ti sei spostato
chdir($current_path);
?>


olyyyyyyyyyyy