2011-02-08 2 views
2

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

Мои первые мысли ...

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

Это сделает так, чтобы Пользователь A мог писать только на блоге A, но это не мешает пользователю A открывать сообщение в блоге в блоге B и редактировать его. Есть предположения?

ответ

0

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

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

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

+0

Ну, я играл с tac_lite, и похоже, что это поможет с разрешениями edit/delete/view. Но, похоже, это не слишком помогает с разрешениями на создание. Но я сделал быстрый и грязный пользовательский модуль, чтобы помочь в этом. Итак ... похоже, сейчас работает! – mikesir87

0

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

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

примеров: (1, 'записать'), (2, 'пишут B') ...

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

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

user_roles (user_id, permission_id)

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

EDIT: oops, я только что заметил, что речь идет о drupal. Мой ответ о моделях баз данных. Извини за это.

+0

haha ​​... все хорошо. спасибо за эту мысль! – mikesir87

Смежные вопросы