День добрый, всем посетителям!
Есть вопрос: Имеется тип материала Заказ, всем авторизированным пользователям(с ролью "авторизированный пользователь") разрешено создавать Заказ. Но есть пользователь, которому нужно запретить доступ к этой странице(либо просто возможность создания). Как это возможно реализовать?
Комментарии
Как варианты:
1. Прописать в hook_node_access
2. прописать в грантах
3. Создать вариант в Pagemanager
С друпалом начал работать ооочень недавно, потихоньку изучаю, но встречаются вот такие затыки.
1. Первый вариант уже пробовал, на сайте используется Drupal 7, в template.php добавлял хук для node_access с префиксом темы, но он не срабатывает(хотя другие хуки использую и они срабатывают), по какой причине не разобрался. Он просто его не вытягивает из темплейта.
2. здесь я вообще не понял о чем речь
3. с Pagemanager не встречался, но сейчас буду копать в эту сторону.
Спасибо urvail за наводки.
«1. Первый вариант уже пробовал, на сайте используется Drupal 7, в template.php добавлял хук для node_access с префиксом темы, но он не срабатывает(хотя другие хуки использую и они срабатывают), по какой причине не разобрался. Он просто его не вытягивает из темплейта.»
--- лучше не писать хуки в template.php, а использовать модули. Кроме того, после написания нового хука нужно обязательно чистить кэш
кэш чистился, не помогает. Так хук ведь потом для этого же нового модуля и действует я так понимаю, а мне нужно уже готовый материал заблокировать, или я не так представляю?
модули предназначены для организации кода. Если вы, в частности, пишете в модуле хук hook_node_access, то он действует на все материалы какие есть и какие будут, поэтому вам остается в хуке правильно написать условие, которое выделит нужные вам материалы
Спасибо, urvail!
Через созданный модуль хук сработал, права выставил!