Запрет на редактирования опубликованных материалов

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

Аватар пользователя D8i8m8a8 D8i8m8a8 11 октября 2012 в 11:47

Есть 2 роли пользователей:
1) Журналист - может создавать ноды, только не опубликованные (нет прав на публикацию). Есть права на редактирования своих нод.
2) Выпускающий редактор - может опубликовать ноды созданные ролю Журналист.
ВОПРОС:
как запретить пользователям с роллю Журналист редактировать свои материалы если роль Выпускающий редактор опубликовал их материал. То есть нужно забрать права у Журналиста на редактирование материала (не всех) если Выпускающий редактор опубликовал их материал. Или (тоже другими словами) нужно сделать чтобы роль Журналист не могла редактировать опубликованные материалы.
Зарание спасибо, если нужно писать модуль подскажите где копать.

Комментарии

Аватар пользователя Crazyfisherman Crazyfisherman 26 сентября 2014 в 15:40

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

Аватар пользователя Orion76 Orion76 26 сентября 2014 в 16:58

Для Rules есть модуль для анализа урла..

https://www.drupal.org/project/pathrules

Событие: Инициализация друпал
Условия:
Если урл начинается на 'node' и заканчивается на 'edit'
Если пользователь не имеет соответствующей роли
Действие:
Переадресовать на нужную страницу и вывести сообщение

вкраце как-то так..

Аватар пользователя leo7 leo7 22 декабря 2014 в 12:50

"orion76" wrote:
Событие: Инициализация друпал
Условия:
Если урл начинается на 'node' и заканчивается на 'edit'
Если пользователь не имеет соответствующей роли
Действие:
Переадресовать на нужную страницу и вывести сообщение

спасибо!