2012-03-24 7 views
5

Ho bisogno di sviluppare un sito su Drupal 7. Ho alcuni tipi di contenuto con campi File in CCK. E l'accesso ai nodi di questi tipi dovrebbe essere concesso solo al ruolo utente Drupal specifico. E in qualsiasi momento l'amministratore del sito dovrebbe essere in grado di rendere questi nodi "pubblici" o "privati".Drupal 7: come limitare l'accesso ai file per specifici ruoli utente

Posso rendere i nodi visibili solo a specifici ruoli utente, ma questo non è abbastanza sicuro. Se l'utente anonimo conosce il percorso del file (www.mysite.org/hidden_files/file1), può scaricarlo.

Qual è il modo più elegante per risolvere questo problema?

Grazie in anticipo.

+0

Non ho usato questo modulo, ma ho intenzione di installarlo. Permette di limitare l'accesso ai file per ruolo. https://drupal.org/project/file_access –

+1

Un'altra limitazione di file privati ​​per ruolo, ma non in alpha https://drupal.org/project/private_files_download_permission –

risposta

9

Partenza questa documentazione qui: http://drupal.org/documentation/modules/file

In particolare, la sezione intitolata "le posizioni dei file Gestione e accesso", che parla di creazione di un archivio di dati privati ​​(il tutto supportato da Drupal 7, ha solo bisogno di essere configurato) .

Per parafrasare, creare una cartella come ad esempio:

siti/default/files/private

mettere un file di.htaccess in quella cartella con il seguente per impedire l'accesso diretto a i file tramite il web:

deny from all

(la documentazione afferma che il passo successivo fa la procedura descritta sopra automaticamente, non ho ancora testato che, purtroppo, ma si può essere in grado di risparmiare tempo se si salta i due passaggi precedenti)

accede alla Admin di Drupal interfaccia, vai su /admin/config/media/file-system, configura l'URL privato e seleziona File privati ​​serviti da Drupal come metodo di download predefinito.

Al fine di definire l'accesso a grana fine per i nodi e campi, è possibile utilizzare di accesso al contenuto:http://drupal.org/project/content_access

Sarà inoltre necessario modificare i tuoi tipi di contenuto e impostare i campi/caricamento delle immagini di file per salvare i file caricati in file privati ​​anziché in file pubblici.

A questo punto, il nodo e le autorizzazioni a livello di campo determineranno se gli utenti sono autorizzati o meno ad accedere ai file che verranno serviti tramite hook di menu che verificano le credenziali prima di servire il file.

Spero che questo aiuti.

+1

In realtà, puoi anche impostare la directory privata al di fuori del tuo web root, come (relativo alla radice del server)/home/[tuo-account]/privato. Assicurati che la directory sia scrivibile da Drupal, che a seconda della configurazione del tuo server può avere una varietà di permessi e privilegi di gruppo diversi. – Alex

+0

Grazie mille! Segnalo come "accettato". Spiacente, non in grado di contrassegnarlo come 'utile', perché ho una reputazione <15 – mechmsk

+0

Nessun problema, felice di essere stato di assistenza. – Alex

Problemi correlati