Ciao a tutti.. mi è capitato un problema strano. Fino a qualche tempo fa la funzione personalizzata che gestisce i download sul mio sito funzionava perfettamente, è del tipo
function miomodulo_file_download($file) {
$filepath = file_create_path($file);
$fid = db_result(db_query('SELECT fid FROM {files} WHERE filepath = "%s" ', $filepath));
$nid = db_result(db_query('SELECT nid FROM {content_field_campodownload} WHERE field_campodownload_fid = %d ', $fid['fid']));
$uid = db_result(db_query('SELECT uid FROM {node} WHERE nid = %d ', $nid['nid']));
if (feedbang_are_friends($uid['uid']) ) //è una funzione che controlla se l'utente autore del file e quello che vuole scaricare sono amici
{
return ;
}
else
{
return -1;
}
Ora ho notato che non funziona più. Cioè sia che siano amici o meno il file viene scaricato comunque. Il controllo è corretto, cioè in caso negativo entra nell'else e restituisce -1 però il file lo fa scaricare comunque mentre prima rimandava alla pagina di accesso negato.
p.s. ho provato a fargli restituire anche drupal_access_denied() ma il risultato è il medesimo
qualcuno può aiutarmi????
http://www.domuspisa.it
http://www.sicarstudio.it
provando a inserire in una tabella creata da me, uid e nid, ho notato che uid è corretto mentre nid è = 0 non capisco gli errori. Vi posto la query
db_query("INSERT INTO {files_download} (uid, nid) VALUES (%d, %d)", $user->uid, $nid)
http://www.domuspisa.it
http://www.sicarstudio.it
qualcuno almeno sa se sono stati cambiati gli standard hook_file_download() dato che l'accesso viene rilasciato anche se la funzione restituisce -1
http://www.domuspisa.it
http://www.sicarstudio.it
facendo un po di modifiche ho notato che mettendo il file system come privato la funzione hook restituendo -1 mi rimanda alla pagina di autorizzazione negata. Però se dal path tolgo system e lo sostituisco con sites/default il download viene eseguito senza seguire nessuna autorizzazione. Questo non deve accadere. Inoltre la query
$nid = db_result(db_query('SELECT nid FROM {content_field_campodownload} WHERE field_campodownload_fid = %d ', $fid['fid']));
restituisce sempre nid=0 e quindi invalida tutti i controlli. Come posso ovviare?
http://www.domuspisa.it
http://www.sicarstudio.it
nessuno ha qualche suggerimento??
http://www.domuspisa.it
http://www.sicarstudio.it
risolto.. grazie a tutti per l'aiuto
http://www.domuspisa.it
http://www.sicarstudio.it