Рейтинг:0

Как пользовательские файлы, скопированные кодом в частный каталог, могут быть доступны через URL-адрес для аутентифицированных пользователей?

флаг us

В моем проекте я использую безголовый Drupal с .Net на интерфейсе.

Я должен использовать частные и зашифрованные файловые системы для требований проекта. Файлы, которые я загружаю через поле частного файла Drupal из типа контента, доступны через URL-адрес, но поскольку зашифрованные файлы недоступны через прямой URL-адрес, я подумал о том, чтобы скопировать расшифрованные файлы из зашифрованной папки в личную папку, чтобы они стали доступными. . Как ни странно, эти файлы недоступны для аутентифицированных пользователей, которым в этом конкретном случае будет отказано в доступе.

Я не могу скопировать эти файлы в общую папку, так как она доступна и анонимным пользователям. Итак, здесь я столкнулся с двумя проблемами:

  • Есть ли способ ограничить общедоступные файлы (sites/default/files/*) только для аутентифицированных пользователей, чтобы анонимные пользователи не могли их просматривать? Я попробовал правила перезаписи в файле .htaccess, но он не ограничивает URL-адрес конкретными пользователями и перенаправляет пользователей на частный URL-адрес.
  • Есть ли способ получить доступ к скопированным файлам из личной папки через URL-адрес?

Эти файлы не загружаются через поле личных файлов Drupal, а копируются из зашифрованной папки в личную папку с помощью специального кода.

Рейтинг:-1
флаг in

Я бы предложил использовать Контроллер чья параметр(ы) маршрута можно использовать для указания желаемого файла. Затем ваш контроллер (либо напрямую, либо путем делегирования другому сервису) может получить доступ к файлу, расшифровать его, а затем вернуть содержимое. Маршрут, который вы определяете для своего контроллера, поддерживает разрешения, поэтому вы можете легко применять контроль доступа.

Друпал консоль — это фантастический ресурс для создания активов Drupal, таких как контроллеры. Чтобы сгенерировать новый контроллер с помощью консоли Drupal: друпал генерировать:контроллер.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.