3-09-2012, 20:21 Посмотрели: 2210 Добавил: bebeka

Определение разрешений ноды в Drupal

В Drupal для каждой ноды существует всего три права разрешений это: просмотр, редактирование, удаление. Перед выполнением каждого из прав, всегда запрашивается функция: node_access(), в которой определен доступ на выполнения действий, функция отдает всегда NULL, она выполняет действие - запрашивает все модули в которых есть реализация хука: hook_node_grants(), и уже в этом хуке определяется есть ли доступ к материалу.

Если допустим есть два модуля в которых есть реализация данного хука, для допустим типа материала “Статья”, если хотя бы одна реализация хука, отдаст FALSE, то для пользователя который запрашивал доступ ( то есть пользователь который открыл страницу ).

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

Хук hook_node_grants() запрашивается не у всех модулей, а у модулей которые как-то относятся к типу материала, например, если тип материала создан через модуль, то тогда будет вызван данный хук только с этого модуля, если другие модули не изменяют права доступа нового материала.

Права доступа можно изменять самому, но нужно много прописывать проверок и условий, а можно использовать уже готовые модули, в которых есть полное управление права пользователя, например модуль: Rules - это наверное основной модуль Drupal, в котором собраны малейшие настройки доступа к нодам.
Рубрика записи: Рецепты Drupal

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

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Юзер панель
Я тебя не знаю!
Зарегистрируйся, либо

войди под своим логином!

Fuck, я забыл свой пароль!

Восстановить данные =0
Новое на сайте
Известная социальная сеть Instagram приступила к тестированию новой...
Недавно, в приложения для Android и iOS социальной сети Twitter была...
Недавно, в Google "Мой бизнес" разработчики добавили новейший способ, как...
Недавно стало известно о том, что соцсеть Facebook по упоминанию в русских...
Недавно, представитель корпорации Google, Джон Мюллер (John Mueller)...
Голосуем

Ваша любимая CMS?


DataLife Engine
WordPress
Joomla
Drupal
LiveStreet
UCOZ
Самопис
Php+Includ
Статика