Разрешение Drupal, пользовательский случай - PullRequest
2 голосов
/ 02 декабря 2010

Цель сайта - сохранить список product.

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

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

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

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 декабря 2010

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

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

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

0 голосов
/ 02 декабря 2010

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

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

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

...