29.12.09

Amagant la foto del profile de Drupal

Si volem fer una Intranet privada amb Drupal i volem aprofitar les funcionalitats que ens ofereix el propi programa, segurament voldrem que els usuaris puguin pujar una foto en el seu perfil i que aquesta foto només sigui visible pels usuaris de l'intranet. Segurament, si permetem que els usuaris adjuntin fitxers, voldrem que les descàrregues siguin privades. Però resulta que tot i que fem les descàrregues privades, les fotos del perfil continuaran sent públiques i, a més a més, els noms de les fotos són coneguts, picture-1.jpg, picture-2.jpg, etc.

Després d'experimentar amb els fitxer .htaccess sense gran èxit, he posat un fitxer .htaccess amb un Deny from all i després he fet un retoc en el codi del mòdul upload perquè faci una comprovació abans de res, o sigui en el mòdul upload.module he retocat el hook upload_file_download i al principi de tot hi he posat:
if (!user_access('view uploaded files')) {
return -1;