Как дать конкретному пользователю права на редактирование для определенного узла? - PullRequest
8 голосов
/ 18 февраля 2010

Как дать конкретному пользователю права на редактирование для определенного узла?

У меня есть роль пользователя с именем «Студент». Эту роль играют несколько пользователей, только несколько из них могут редактировать узел. Как я могу это понять?

Ответы [ 5 ]

13 голосов
/ 18 февраля 2010

Я постараюсь охватить несколько вариантов использования, с тем, как я бы их решить:

  1. Если все члены категории пользователей могут редактировать любой узел определенного типа
    • Создайте новую роль для этого подмножества пользователей («Супер Студенты», как предложил Эмир) и предоставьте им разрешения «Редактировать содержимое типа» через основную систему разрешений Drupal (модуль доступа к узлам не требуется)
  2. Если все члены категории пользователей могут редактировать определенные узлы
    • Создайте новую роль для этого подмножества пользователей и предоставьте им разрешения на редактирование для определенных узлов (требуются модули доступа к узлам, такие как Доступ к узлам или Доступ к содержимому ). Это также потребует, чтобы кто-то имел разрешения (и время) для предоставления доступа к роли при создании нового узла.
  3. Некоторые пользователи могут редактировать некоторые узлы; нет «элитной» группы пользователей, которые могут редактировать все узлы, и не все участники могут редактировать одни и те же узлы
    • Для этого потребуется модуль доступа к узлу, такой как Node Access или Content Access с ACL. Также должны быть пользователи-администраторы, которые имеют право предоставлять другим пользователям доступ для редактирования узлов.
  4. Разрешить пользователям предоставлять другим доступ к редактированию созданного ими узла.
    • Я реализовал это недавно с полем CCK для ссылки на пользователя и Ссылка на пользователя для доступа к узлу . Вы можете предоставить пользователям разрешение на редактирование своих собственных узлов через основную систему разрешений, и они могут затем добавить других пользователей в поле ссылки на пользователя. В моем случае создатели не получили такого разрешения, и я установил значение поля по умолчанию для идентификатора пользователя создателя, что позволяет пользователю удалить себя из возможности редактирования узла.

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

3 голосов
/ 18 февраля 2010

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

Для этого конкретного случая вы можете создать модуль, реализующий hook_nodeapi и$ op == подготовить, проверить идентификатор пользователя по вашей ссылке на пользователя и сделать drupal_go на страницу отказа в доступе, если они не совпадают.

2 голосов
/ 20 ноября 2012

Вы можете сделать это с помощью Flexi Access . Предоставление конкретному пользователю привилегии «обновления» на узле позволит ему редактировать узел.

Дополнительные параметры см. На странице: Обзор модулей Node Access @ Drupal.org.

1 голос
/ 18 февраля 2010

Вы пробовали либо Доступ к узлу , либо Доступ к контенту ?

0 голосов
/ 18 февраля 2010

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

Модуль Доступ к узлам может помочь вам установить соответствующие разрешения для узлов.Вот выдержка из его страницы проекта:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...