Разрешения Drupal (+ CCK), основанные на поле связанного узла - PullRequest
0 голосов
/ 16 января 2010

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

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

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

Ответы [ 2 ]

2 голосов
/ 16 января 2010

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

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

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

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