как организовать друпал контент в следующем случае - PullRequest
1 голос
/ 22 сентября 2010

Мне нужна помощь, как организовать узлы drupal cms.

У меня есть три вида пользователей (три дополнительные группы пользователей).

узлы доступны только если пользователи вошли в систему.

пользователи из первой группы могут получить доступ ко всем узлам, которые созданы всеми пользователями (все группы пользователей).

пользователи из второй группы могут получить доступ только к узлам, созданным ими самостоятельно.

пользователи из третьей группы могут получить доступ к созданному ими контенту и пользователям из первой группы.

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

возможно ли организовать с помощью модуля views? также важно, чтобы пользователи использовали одну и ту же ссылку для доступа к узлам.

мне нужно дополнительное программирование для этого?

заранее спасибо !!!

1 Ответ

1 голос
/ 23 сентября 2010

Извините, но ответ на это довольно сложно объяснить. Концепция на самом деле довольно проста.

Вам потребуется использовать модуль на основе Node Access. Что делают модули доступа к узлам? Пожалуйста, смотрите:

http://drupal.org/node/270000 для хорошего обзора

Сначала создайте 3 роли пользователя. Позволяет называть их: Role_A, Role_B, Role_C. Затем создайте словарь под названием Группа. Добавьте три слова в словарь группы: Group_A, Group_B, Group_C.

Убедитесь, что словарь группы применяется ко всем типам контента, которыми вы хотите управлять, например, Пейдж, история и т. Д.

Концепция заключается в следующем: когда пользователь Role_A создаст узел, он должен добавить термин Group_A к узлу. Когда пользователь Role_B создаст Node, он должен добавить термин Group_B к узлу. Когда пользователь Role_C создаст узел, он должен добавить термин Group_C. Я знаю, что вы хотите, чтобы пользователь не должен был делать это ... есть способы, которыми мы можем избежать этого или сделать это простым ... продолжайте читать.

Используя таксономический контроль доступа lite module http://drupal.org/project/tac_lite, вы сделаете так, чтобы:

Роль A будет иметь представление доступа ко всем узлам, имеющим условия таксономии Group_A или Group_B или Group_C. Роль B будет иметь представление доступа ко всем узлам, имеющим условия таксономии Group_B. Роль C будет иметь представление доступа ко всем узлам, имеющим условия таксономии Group_A или Group_C

Теперь вам нужно запретить пользователям Role_A присоединять любой термин из словаря группы , кроме Group_A. то есть пользователь Role_A должен иметь возможность только добавлять термин Group_A к своим узлам, пользователь Role_B должен иметь возможность добавлять только термин Group_B к своим узлам, а пользователь Role_C должен иметь возможность только добавлять термин Group_C к своим узлам.

Вы можете сделать это, используя термин «модуль разрешений» http://drupal.org/project/term_permissions

Перейдите к каждому термину в словаре группы и отредактируйте его. В нем будет доступен раздел разрешений. Так что пусть Role_A только имеет разрешение для термина Group_A, Role_B для Group_B и Role_C для Group_C.

Теперь вы должны сделать требуемый словарь группы (установите флажок в настройках редактирования словаря). Это так, что пользователи вынуждены выбирать свою группу. Обратите внимание, что из-за разрешений термина у них в раскрывающемся списке будет только ОДИН элемент, из которого они должны выбрать, так что это тривиально.

Модуль Views будет работать из коробки. Пользователи Role_A смогут видеть только те узлы, которые им нужны, и так далее. Так что ты в порядке там.

Примечание 1: Если вы хотите, чтобы люди не беспокоились о необходимости выбора группы, вы всегда можете использовать модуль правил, чтобы убедиться, что при сохранении узел помечается определенным термином таксономии. См. http://drupal.org/project/rules. Таким образом, вы добавите термин Group_A, если роль пользователя - это роль A и т. Д. При сохранении. Если вы используете правила, вам не нужно делать словарь группы «обязательным».

Примечание 2: Обратите внимание, что вместо использования таксономической комбинации контроля доступа lite + термин модуль разрешений можно просто использовать таксономическую систему контроля доступа http://drupal.org/project/taxonomy_access, которая является мощным, но более сложным модулем.

Примечание 3: Обратите внимание, что на момент написания этого, термин «модуль разрешений» взаимодействовал с модулем «Иерархический выбор» (HS) и, возможно, с таксономическими модулями «Супер выбор» (TSS). Поэтому, если вы используете модули HS / TSS, вам нужно будет управлять доступом к таксономии пользователя (а не tac_lite)

...