Сложный сценарий доступа к контенту/узлу, требуется ввод


Требования следующие:

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

Кроме того, автор каждого узла должен иметь возможность переопределять эту функциональность и "приглашать" определенных пользователей для просмотра узла, даже если он находится в группе, минуя настройки группы. Итак, если в группе были пользователи U1, U2 и U2, но автор пригласил U2, U4 и U5, U1 и U3 не смогут получить доступ к узлу.

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

Используя органические группы И ссылку на пользователя доступа к узлу, я смог выполнить группировку и либо функцию "участники", ЛИБО функцию "посредники", поскольку, как представляется, пользователь доступа к узлу ссылка не может поддерживать 2 типа грантов на одном узле.

Теперь общий совет: "Вы не хотите использовать более одного модуля доступа к узлу на своем сайте". (http://drupal.org/node/270000). Поэтому идея добавить еще одну, чтобы выполнить недостающую функцию, звучит неправильно. Кроме того, создание пользовательского модуля для инкапсуляции всех этих функций кажется большой работой.

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

РЕДАКТИРОВАТЬ: Похоже, что даже синергия органических групп и ссылок на пользователей доступа к узлам работает не так, как предполагалось. Просто работает в содержимом общедоступных групп, так как в таблице "node_access" нет записи "group_access_authenticated", а ссылка на пользователя доступа к узлу обрабатывает все гранты. В частных группах, где, например, один пользователь (U10) может быть членом группы, но НЕ в списке "участников" узла, так как у него есть с помощью гранта "group_access_authenticated" он может просматривать соответствующий узел, тем самым нарушая функциональность.

Author: magtak, 2012-08-13

1 answers

Ну, просто для тех, кто наткнется на это в будущем, напишите свой собственный модуль доступа к контенту. Как только вы поймете логику, это будет довольно просто, и это решит ваши проблемы, позволяя вам сохранить логику других модулей, участвующих в вашем проекте. Просто скопируйте их код/логику и установите его вместе с остальными вашими требованиями с более высоким приоритетом.

 0
Author: magtak, 2012-09-27 09:04:55