При работе с 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Январь 9, 2024 г.
Функция считается устаревшей, начиная с версии ядра 9.3, в 10-й версии функция удалена из кода.
В новом API нужно воспользоваться одним из сервисов ядра, которые реализуют нужную функцию.
Сервис extension.list.module - реализует функции, связанные ...
Читать
Декабрь 23, 2025 г.
В этой статье мы рассмотрим, как добавить кнопку "Register" в форму авторизации в Drupal, которая будет перенаправлять пользователя на страницу регистрации. ...
Читать
Январь 31, 2019 г.
Модуль field_collection всю свою историю существования (аж 2010 года) проходит в статусе beta версии. Тем не менее многие разработчики используют его в своих проектах. На текущий момент это версия 7.x-1.0-beta13.
Хотя FC - это ещё один entity, ...
Читать
Октябрь 16, 2017 г.
Drupal очень многое позволяет делать из админки. Создание типов публикаций, представлений, настройка модулей и многое другое. Это сильная сторона и одновременно ...
Читать