Рейтинг:1

Переопределить доступ к частному файлу по умолчанию

флаг in

На сайте, который я разрабатываю, каталог личных файлов находится вне корня документа.
У меня есть тип контента (Глава) с полем файла, которое хранит свои файлы в каталоге личных файлов. Когда Глава узел опубликован, его файл доступен для пользователей, но когда узел не опубликован, его файл недоступен для пользователей. Они получают страницу с отказом в доступе.

Как я могу контролировать доступ к прикрепленному файлу и разрешить пользователям доступ к прикрепленному файлу, когда узел не опубликован, в пользовательском модуле?

Рейтинг:2
флаг de

В Drupal доступ к личным файлам определяется доступом к объекту, к которому они прикреплены. Я бы создал новый тип медиаобъекта, установив хранилище файлов как приватное. Затем вы можете настроить пользовательские правила доступа для типа объекта, используя стандартную методологию Drupal. Пользователям с доступом к этому объекту будет разрешен доступ к частному файлу, а пользователям без доступа к этому объекту будет отказано в доступе к файлу. Затем вы можете прикрепить элемент мультимедиа к любому узлу или другому объекту, который вам нужен.

флаг in
Спасибо за это предложение @Jaypan. У каждого узла главы есть флажок «общедоступный», который определяет, может ли доступ к его pdf-файлу кто-либо, кроме пользователей-администраторов. Кроме того, узел «книга», который является родителем узла «глава», имеет флажок «общедоступный», который переопределяет флажок «общедоступный» для его глав. Поэтому мне нужно проверить оба значения этих полей, чтобы определить, должен ли «pdf» для «главы» быть общедоступным для просмотра. Позволит ли предложенный вами подход это сделать?
Jaypan avatar
флаг de
Ну, я объяснил, как вы управляете разрешениями для личных файлов. Так что, если вы настроите свои разрешения для типа Media, чтобы следовать вашим описаниям, тогда да, мой подход позволит это сделать. Что касается того, как вы на самом деле настроите эти разрешения для типа носителя, это действительно другая тема, поэтому вам следует открыть новый вопрос, если вам нужна дополнительная информация об этом. Drupal Answers — это сайт в формате 1 вопрос — 1 ответ.
флаг in
Спасибо @Jaypan.У меня ограниченный опыт работы со многими областями разработки Drupal, включая эту область. Я попробую и вернусь.

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

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