При работе с 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Май 10, 2011 г.
За период примерно в год я собрал около 100-150 сайтов на drupal 6. Но в январе 2011 года была выпущена седьмая версия, и постоянно крутились мысли - как бы поглядеть : что есть сиё. При этом нет какой то насущной необходимости, т.к. подборка модулей ...
Читать
Сентябрь 21, 2017 г.
Drush позволяет почувствовать себя "ацким хакером" при работе над проектом в Drupal. Он упрощает многие рутинные операции, расширяя и дублируя часть функций ...
Читать
Апрель 24, 2025 г.
Чтобы через админку почистить длинные словари, нужно много времени, даже если вы используете bulk операции. Потому будем чистить их через код.
Разберем пример кода:
[crayon-6a5d9294c54f0509618958/]
Эти две команды удаляют все термины из словаря ...
Читать
Ноябрь 6, 2025 г.
Понадобилось мне сгенерировать уникальный код, чтобы привязать уникальные стили к конкретному контейнеру. Функция random в twig чаще всего достаточна для этой цели. Но хотелось пойти немного дальше, и вытащить сервис генерации UUID.
Это нам приводит ...
Читать