Разрешение Drupal, пользовательский случай

Цель сайта - поддерживать product листинга.

  • каждый product Составляет название, описание и количество (поле CCK).
  • каждый product принадлежит к shop,
  • каждый shop имеет manager,
  • Все products видны всем.
  • manager можно только добавлять / редактировать products Его личное shop,
  • Сайт admin может создать новый shops и новый managers,

Как я могу установить разрешение для вышеуказанного сценария?

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

Кроме того, органические группы также вариант?

Спасибо!

2 ответа

Решение

TAC решает ваши проблемы. Я использую это в очень похожем сценарии. Вот как это сделать:

  1. Создайте новый тип контента "Продукт" с полями, которые вы указали
  2. Создайте термин таксономии для каждого магазина. Включить и требовать таксономию для типа контента "Продукт"
  3. Создать роль для каждого магазина
  4. Включить TAC для этой роли
  5. Установите разрешения TAC для Global, чтобы разрешить просмотр, но запретить обновление, удаление, создание и просмотр списка.
  6. Установите разрешения TAC для термина магазина, чтобы разрешить Просмотр, Обновление, Удалить, Создать и Список.
  7. Сохранить и восстановить разрешения

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

Я думаю, что ваш подход к таксономии Access Control может работать, но назначение пользователей таксономии для соответствующих разрешений потребовало бы немного пользовательского кода.

Использование органических групп может обеспечить более надежный доступ "из коробки" (каждый магазин - это группа, а затем продукты публикуются в этой группе), но вам нужно будет выделить множество значений по умолчанию, чтобы скрыть форум / стену. рабочий процесс новостей, с которым OG поставляется из коробки (это можно сделать с помощью хуков, предоставляемых OG).

Преимущество заключается в том, что для добавления менеджеров по продукту в магазин вы просто должны назначить их администратором группы (таким образом в магазине может быть несколько администраторов). Вы должны установить каждую группу как общедоступную (чтобы все продукты были видны), но только предоставили разрешение на редактирование узлов в группе администратору этой группы. Администраторы группы также будут единственными, у кого есть разрешение на создание узлов продукта, которые будут настроены как узлы группы (это делается на экране редактирования типа узла или на экране администратора OG).

Другие вопросы по тегам