2010-01-16 2 views
0

Предположим, у меня есть два типа контента: «Список работ» и «Заявка на работу». Приложение задания имеет поле (используя модуль CCK) для ссылки на список заданий (обязательное поле). Предположим, что приложение задания имеет поле «Статус» со значениями типа «новый», «принятый», «отклоненный».Разрешения Drupal (+ CCK) на основе соответствующего поля узла

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

(я по сценарию в гл. 3 «Использование Drupal» О'Рейли)

+0

Кто-то на drupal.org рекомендую посмотреть http://drupal.org/project/nodeaccess_nodereference –

ответ

2

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

  1. Используйте hook_form_alter, чтобы добавить свой собственный обработчик проверки в форму node_edit для типа содержимого приложения.
  2. Проверьте, не изменилось ли значение
  3. Установить ошибку, так как пользователь не является создателем или имеет разрешение на администрирование контента.
  4. Все готово.
1

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

  • Удалить собственное разрешение для типа содержимого приложения.
  • Также вы, вероятно, не хотите, чтобы автор одной вакансии редактировал приложения в ответ на некоторые другие списки вакансий. Это трудно сделать с любыми встроенными разрешениями. Поэтому проверьте в hook_alter, что текущий пользователь совпадает с автором списка заданий, к которому подключено редактируемое приложение.
+0

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

+0

Спасибо обеим. Мне нужно немного поиграть с Drupal –