При работе с 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Май 24, 2021 г.
Для отправки писем, Drupal 9 использует реализации интерфейса MailInterface (core/lib/Drupal/Core/Mail/MailInterface.php). И в коробке сразу же имеется ...
Читать
Апрель 20, 2018 г.
Drupal удаляет не используемые изображения. С одной стороны это правильная стратегия - зачем хранить картинки, файлы, которые уже не используются? С другой стороны есть причины, когда их требуется сохранить.
Вот хотя бы две:
SEO-шникам важно, ...
Читать
Апрель 19, 2024 г.
При отладке миграций в Drupal могут возникать состояния, когда миграция не прошла по какой то причине (ошибке) и подвисла в состоянии отличном от Idle. ...
Читать
Февраль 2, 2016 г.
Терминология не устоялась, все называют subject по-разному: составные поля, множественные поля, коллекции полей, мультиполя, зависимые поля... Эту же неразбериху ...
Читать