Как ограничить права доступа по созданию материала для определенного пользователя. [Решено]

Главные вкладки

Аватар пользователя Gost.Jr Gost.Jr 21 февраля 2014 в 11:10

День добрый, всем посетителям!
Есть вопрос: Имеется тип материала Заказ, всем авторизированным пользователям(с ролью "авторизированный пользователь") разрешено создавать Заказ. Но есть пользователь, которому нужно запретить доступ к этой странице(либо просто возможность создания). Как это возможно реализовать?

Комментарии

Аватар пользователя Gost.Jr Gost.Jr 21 февраля 2014 в 12:00

urvail wrote:
Как варианты:
1. Прописать в hook_node_access
2. прописать в грантах
3. Создать вариант в Pagemanager

С друпалом начал работать ооочень недавно, потихоньку изучаю, но встречаются вот такие затыки.
1. Первый вариант уже пробовал, на сайте используется Drupal 7, в template.php добавлял хук для node_access с префиксом темы, но он не срабатывает(хотя другие хуки использую и они срабатывают), по какой причине не разобрался. Он просто его не вытягивает из темплейта.
2. здесь я вообще не понял о чем речь
3. с Pagemanager не встречался, но сейчас буду копать в эту сторону.

Спасибо urvail за наводки.

Аватар пользователя urvail urvail 21 февраля 2014 в 12:15

«1. Первый вариант уже пробовал, на сайте используется Drupal 7, в template.php добавлял хук для node_access с префиксом темы, но он не срабатывает(хотя другие хуки использую и они срабатывают), по какой причине не разобрался. Он просто его не вытягивает из темплейта.»

--- лучше не писать хуки в template.php, а использовать модули. Кроме того, после написания нового хука нужно обязательно чистить кэш

Аватар пользователя Gost.Jr Gost.Jr 21 февраля 2014 в 12:23

urvail wrote:
«1. Первый вариант уже пробовал, на сайте используется Drupal 7, в template.php добавлял хук для node_access с префиксом темы, но он не срабатывает(хотя другие хуки использую и они срабатывают), по какой причине не разобрался. Он просто его не вытягивает из темплейта.»

--- лучше не писать хуки в template.php, а использовать модули. Кроме того, после написания нового хука нужно обязательно чистить кэш


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

Аватар пользователя urvail urvail 21 февраля 2014 в 14:20

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