При работе с 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Март 2, 2014 г.
Запустили сайт - каталог по технике, связанной с полировкой. Не знал, что существует столько оборудования для полировки. Магазинная часть базируется на ...
Читать
Сентябрь 24, 2017 г.
Препроцессоры Less и Sass, на мой взгляд, это какая то переходная ступень. Со временем, я надеюсь, функционал расширений будет реализован в CSS. Но ждать ...
Читать
Март 22, 2018 г.
Если вы используете в своей форме (API Drupal 7) поле даты, поставляемое модулем date/date_popup, то возможно, хотели бы избавиться от поля ввода времени. ...
Читать
Август 30, 2021 г.
Пример кода как рендерить блок views с программной установкой contextual filters.
Контекстные фильтры устанавливаются методом ViewExecutable::setArguments(array $ARGS). В примере я передаю пару аргументов в качестве значений контекстных фильтров. ...
Читать