При работе с private файлами в Drupal, можно использовать зацепку hook_file_download($uri), в которой вы можете реализовать проверку прав доступа к скачиваемому файлу. Но на входе функции — только uri, вместо fid, по которому было бы удобно вытащить всю информацию о файле.
В общем то понятно, что по uri можно вытащить данные из таблицы file_managed. Через апи этот запрос можно сформировать функцией file_load_multiple().
|
|
function HOOK_file_download($uri) { $files = file_load_multiple(array(), array('uri' => $uri)); // После анализа данных, полученных о файле, // нужно вернуть content-type файла или -1, // если доступ к файлу запрещен ... $access_enabled = true; if ($access_enabled) { return array('Content-Type' => file_get_mimetype($uri)); } else { // Access to the file is denied. return -1; } } |
Данная запись опубликована в 07.11.2017 13:19 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Ноябрь 19, 2015 г.
Небольшой путеводитель по написанию модуля для Drupal 7.
Любой "приличный" проект на drupal (да и в других CMS) требует как минимум трех вещей:
Взять подходящую сборку drupal (с нужными модулями, установленным Wysiwyg редактором, русификацией); ...
Читать
Сентябрь 24, 2024 г.
Это мощный модуль перевода контента. Из коробки, позволяет делать это вручную, вытягивая поля сущности в единый список. К нему можно подключить Deepl в качестве провайдера (tmgmt_deepl) и автоматизировать перевод контента.
Модуль решает очень большую ...
Читать
Ноябрь 6, 2015 г.
В статье пойдет речь от системе меню в Drupal, некоторых полезных модулях и примерах программирования. Хоть речь пойдет о Drupal 7, и примеры подготовлены ...
Читать
Ноябрь 8, 2016 г.
Можно использовать анализ адреса хранимый Drupal в $_GET['q'] и/или анализ частей адреса, получаемых функцией arg(N).
Оба варианта по сути делают одно и тоже - анализ внутреннего адреса, который для публикации имеет вид: node/%NID%.
Я использую функцию ...
Читать