Предоставить пользователю ссылку «изменить разрешения» на тип контента? - PullRequest
2 голосов
/ 26 октября 2009

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

Наиболее близким модульным решением, которое я нашел до сих пор, является Node Access module . Он подходит очень близко, но для меня это не совсем так, в том смысле, что он создает новую вкладку «Предоставить» для типа контента, а затем отображает флажки с слишком большим количеством опций разрешений (разрешают роли просматривать, редактировать и delete), где я хочу отображать только параметр view , и мне нужно, чтобы он находился прямо на странице редактирования / создания контента, а не на отдельной вкладке.

Если я не найду альтернативное простое решение, мне придется добавить взломать модуль блога или что-то в этом роде. Я не могу придумать другого способа сделать это.

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 26 октября 2009

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

  • TAC Lite позволяет связать словарь со схемой контроля доступа. Каждый термин может быть связан с различными разрешениями на просмотр / редактирование для конкретных пользователей или ролей пользователей.

    В этом случае вам потребуется один термин в настроенном словаре. Установите его так, чтобы этот термин («Ограниченный доступ»), когда он установлен, ограничивал доступ только для аутентифицированных пользователей.

    Преимуществом TAC_lite является гибкость построения вашей модели доступа по мере появления новых требований, таких как получение «премиум-подписчиками» доступа к еще более ограниченному контенту.

  • Доступ к содержимому позволяет устанавливать правила контроля доступа по типу содержимого и переопределять по узлам. Я не могу говорить с пользовательским интерфейсом, так как я не использовал этот режим.

0 голосов
/ 26 октября 2009

В случае, если предложение Graysides (хорошее) не подходит, вы можете сделать это самостоятельно, не взломав модуль блога, внедрив hook_nodeapi() и hook_form_alter() в пользовательском модуль:

  • В операции перехвата загрузки можно добавить проверку текущих настроек доступа узлов, касающихся анонимных и аутентифицированных пользователей. Вы добавили бы свойство для этого к объекту узла (помните о возможных конфликтах именования - вы должны добавить префиксы имен пользовательских свойств в объекте узла к имени вашего модуля).
  • С помощью hook_form_alter() вы добавляете элемент формы (например, радиокнопки) в формы редактирования узла для узлов блога, который позволяет пользователям выбирать видимость по умолчанию для нового свойства узла сверху.
  • При insert и update операциях hook_nodeapi() вы затем снова проверяете новое свойство и соответственно настраиваете параметры доступа к узлам.

Обратите внимание, что этот подход может помешать другим действиям модуля доступа к узлам, поэтому может потребоваться его доработка. Я не рекомендую это - я просто хотел предложить альтернативу «хакерскому ядру».

...