Как разрешить пользователю A писать сообщения в блоге для блога A, но не для блога B - PullRequest
2 голосов
/ 08 февраля 2011

Я ищу модуль / технику, которая позволит мне разрешить пользователю A писать в блоге A, но не в блоге B. Однако пользователь B может писать в блогах A и B, но не в C. В основном,это должно быть гибким ... Но, это оказывается трудным.Кто-нибудь сталкивался с чем-нибудь подобным?Ох ... и он не может использовать разные роли для каждого.Все авторы имеют одинаковую роль.

Мои первоначальные мысли ...

  • Создайте тип контента с именем Блог, который содержит поле «Ссылка пользователя» для тех, кому разрешено писать в него.
  • Создайте тип содержимого «Запись блога», в котором есть ссылка на узел для блогов, на которые ссылается пользователь (используя «Вид» для выбора узлов).

Это сделает так, чтобы пользователь А мог писать только в блоге А, но это не мешает пользователю А открывать запись в блоге в блоге Б и редактировать ее.Есть мысли?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2011

Я бы посоветовал посмотреть, как http://drupal.org/project/forum_access справляется с этим.Этот вариант использования (только с правами просмотра, обновления и / или создания для определенных форумов) очень похож на ваш.Может быть, http://drupal.org/project/tac_lite может даже работать, но я не уверен, что вы можете предоставить пользователям контроль над таксономией, которая также контролирует доступ.

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

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

0 голосов
/ 08 февраля 2011

Поскольку вы не хотите использовать модель RBAC для этого, вы можете просто создать таблицу, которая содержит все разрешения, а затем назначить разрешение тому, кто, по вашему мнению, необходим.Таблица разрешений может быть такой:

разрешения (идентификатор, действие)

примеры: (1, «запись A»), (2, «запись B») ...

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

Наконец, вы создаете таблицу user_roles, например:

user_roles (user_id, license_id)

И вы можете передать любое разрешение любому пользователю, который вам нравится :) Надеюсь, что это поможет.

РЕДАКТИРОВАТЬ: упс, я только что заметил, что это о Drupal.Мой ответ о моделях баз данных.Извините за это.

...