При работе с 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Июль 12, 2023 г.
Сначала вы создали в Drupal rest ресурс - /Plugin/rest/resource, поработали с ним, а потом пришло время прощаться. Но вот проблема - система уже знает о ресурсе, и если вы удалите файл, то при попытке зайти в админ панель расширений /admin/modules, вы ...
Читать
Сентябрь 21, 2017 г.
Drush позволяет почувствовать себя "ацким хакером" при работе над проектом в Drupal. Он упрощает многие рутинные операции, расширяя и дублируя часть функций ...
Читать
Сентябрь 6, 2017 г.
В Drupal (7) новые флажки - права пользователей добавляются через hook модуля MODULENAME_permission.
В зацепке вы формируете массив описаний прав, который возвращаете при выходе из функции. Пример:
[crayon-69ebda4458820475509823/]
После того, ...
Читать
Февраль 5, 2020 г.
Drupal views позволяют сконфигурировать сообщение на случай если результат запроса пуст и нельзя срендерить какой либо контент для данного представления.
Данная опция находится во вкладке 'advanced' вашего представления. Но в данной статье я покажу ...
Читать