2012-03-24 9 views
5

Potrzebuję stworzyć stronę na Drupal 7. Mam pewne typy zawartości z polami pliku w CCK. Dostęp do węzłów tego typu powinien być przyznawany tylko konkretnej roli użytkownika Drupala. I w każdej chwili administrator strony powinien mieć możliwość uczynienia tych węzłów "publicznymi" lub "prywatnymi".Drupal 7: jak ograniczyć dostęp do plików do określonych ról użytkownika

Potrafię uczynić węzły widocznymi tylko dla określonych ról użytkowników, ale to nie jest wystarczająco bezpieczne. Jeśli anonimowy użytkownik zna ścieżkę do pliku (www.mysite.org/hidden_files/file1), może ją pobrać.

Jaki jest najbardziej elegancki sposób rozwiązania tego problemu?

Z góry dziękuję.

+0

Nie użyłem tego modułu, ale mam zamiar go zainstalować. Pozwala ograniczyć dostęp do plików według roli. https://drupal.org/project/file_access –

+1

Kolejne ograniczenie plików prywatnych według roli, ale nie w alfa https://drupal.org/project/private_files_download_permission –

Odpowiedz

9

Sprawdź tę dokumentację tutaj: http://drupal.org/documentation/modules/file

szczególności, sekcja zatytułowana „lokalizacje plików zarządzający oraz dostępu”, który opowiada o ustanowienie prywatnego przechowywania danych (wszystkie obsługiwane przez Drupal 7, to po prostu musi być skonfigurowany) .

Parafrazując, utworzyć folder takich jak:

sites/default/files/prywatne

umieścić .htaccess plik w tym folderze z następujących czynności, aby uniknąć bezpośredniego dostępu do plików za pośrednictwem internetu:

deny from all

(dokumentacja twierdzi, że następujący krok robi powyższe czynności automatycznie, nie testowałem, że niestety, ale może być w stanie zaoszczędzić trochę czasu, jeśli pominąć powyższe dwa kroki)

Zaloguj się do administratora Drupal interfejs, przejdź do /admin/config/media/file-system, skonfiguruj prywatny adres URL i wybierz Pliki prywatne obsługiwane przez Drupal jako domyślną metodę pobierania.

W celu zdefiniowania drobnoziarnistych dostępu do węzłów i pól, można użyć dostęp do treści:http://drupal.org/project/content_access

Potrzebny będzie również do edytować swoje typy zawartości i ustawić plik/dziedziny przesyłania obrazu aby zapisać przesłane pliki w plikach prywatnych zamiast w plikach publicznych.

W tym momencie uprawnienia na poziomie węzła i pola określają, czy użytkownicy mają dostęp do plików, które będą wyświetlane za pośrednictwem haków menu, które sprawdzają referencje przed udostępnieniem pliku.

Mam nadzieję, że to pomoże.

+1

W rzeczywistości możesz również ustawić prywatny katalog poza swoim kontem. katalog główny, taki jak (względem katalogu głównego serwera)/home/[twoje konto]/prywatny. Upewnij się, że katalog jest zapisywalny przez Drupala, co w zależności od konfiguracji serwera może mieć wiele różnych uprawnień i uprawnień grupowych. – Alex

+0

Wielkie dzięki! Zaznaczam tę odpowiedź jako "zaakceptowaną". Niestety, nie mogę go oznaczyć jako "przydatny", ponieważ mam reputację <15 – mechmsk

+0

Bez obaw, szczęśliwy z pomocy. – Alex

Powiązane problemy