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

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

  • Тип содержимого a
    • Public?
    • Открытые файлы
    • Внутренние файлы
  • Тип контента b
    • Public?
    • Открытые файлы
    • Внутренние файлы

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

Моя первоначальная мысль заключается в создании двух разных представлений для каждой страницы с разными настройками доступа для каждого. Первая из них - это страница, которая не проверяет публичное поле и включает в себя поле непубличных файлов, а второе, доступное всем, которое фильтрует публикации, где для общедоступного поля установлено значение true, и не включает внутренние файлы поле и несколько других полей, представляющих интерес для персонала.

  • просмотр списка узлов
    • просмотреть
      • доступ: только персонал
      • фильтр: опубликованные узлы
  • просмотр списка узлов
    • просмотр b
      • доступ: без ограничений
      • фильтр: опубликованные узлы AND public истинны.
  • вид узла
    • просмотреть
      • доступ: только персонал
      • фильтр: опубликованные узлы
      • : Все поля, включая внутренние файлы
    • просмотр b
      • доступ: без ограничений
      • фильтр: опубликованный узел И помечен как открытый
      • поля: не отображать внутренние файлы, некоторые другие поля

Это самый простой, самый drupalish подход? Имеет ли смысл контролировать поля, используемые через представление или через режим просмотра (Full Content, Teaser и т. Д.). Я все еще немного знаком с работой с Drupal и считаю, что я борюсь с ним на каждом шагу, что заставляет меня думать, я должен думать не о том, как работать с сайтом drupal.

Дополнительная информация: Я фактически переопределяю это из существующей системы и использую Migrate для ввода тысяч записей, поэтому мне нужно как-то указать часть миграции, какие должны быть разрешения.

4 голоса | спросил UltraBob 2 FebruaryEurope/MoscowbTue, 02 Feb 2016 08:10:29 +0300000000amTue, 02 Feb 2016 08:10:29 +030016 2016, 08:10:29

2 ответа


2

Доступ к контенту

  

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

Видеоурок

Разрешения на работу

  

Модуль разрешений на местах позволяет администраторам сайтов устанавливать разрешения на уровне поля для редактирования, просмотра и создания полей для любого объекта.

 введите описание изображения здесь>> </a> </p>

<hr>
<p> Подход ваших взглядов прекрасен, если все, что вам нужно, - это в представлении. </p>

<p> Но если вы хотите ограничить доступ к узлам, вам лучше использовать Content Access. </p>

<p> Например: если в вашем представлении перечислены ссылки, которые вы не анонимны для доступа (например: премиум-контент), вы хотели бы использовать модуль Content Access, потому что, если анонимные пользователи каким-то образом завладеют прямой ссылкой, они могут см. премиальные узлы. </p></body></html>

ответил No Sssweat 2 FebruaryEurope/MoscowbTue, 02 Feb 2016 08:32:28 +0300000000amTue, 02 Feb 2016 08:32:28 +030016 2016, 08:32:28
0

Помимо предыдущего (действительного!) ответа, я думаю, что есть еще одна альтернатива , чтобы решить хотя бы эту часть вашего вопроса:

  

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

Как я попытаюсь реализовать это, нужно использовать Group для все документы, предназначенные для аутентифицированных пользователей. Для «публичных» документов вам не нужно ничего делать, я думаю. Согласно « правильной роли ", это вопрос создания соответствующих «групп» (например, 1 для каждой роли)? И /или, возможно, даже подгрупп что этот модуль поддерживает.

Этот модуль похож на Органические группы «Маленький брат», только начатый в D7 и с версия D8 на горизонте. Лично я все больше и больше рассматриваю его как потенциальную альтернативу для Content Access . И поскольку все это основано на Entity, существует множество способов его использования в сочетании с Rules .

Для получения дополнительной информации об этом модуле см. мой ответ на « Только разрешить пользователю редактировать своих пользователей? ".

ответил Pierre.Vriens 12 FebruaryEurope/MoscowbFri, 12 Feb 2016 13:06:16 +0300000000pmFri, 12 Feb 2016 13:06:16 +030016 2016, 13:06:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132