Использую Workflow модуль и Rules для изменения статусов по разным действиям - создание материала со взаимосвязью, изменение статуса другого материала.
столкнулся с такой проблемой - надо поменять статус, но пользователи не должны иметь прав менять его вручную - только выполним условие которое запустит правило и оно изменит статус.
и тут делема - под админом у которого есть все разрешения на любой переход все работает четко, а под пользователем, который не может данный переход делать не работает.
и еще один момент - с другим материалом такое сработало, но условие там - добавление взаимосвязи.
а тут условие - изменение статуса другого контента (который разрешено делать) и не работает.
есть ли возможность обойти права и выполнить правило под другим пользователем или например с другими правами?
Пока писал - пришло в голову на момент выполнения Правила сначала добавить прав пользователю, поменять статус и убрать права у пользователя.
но не будет ли это дыркой в защите?
Попробовал свое предположение - не работает. хотя по логике должно бы.
Комментарии
У компонентов есть настройка ролей:
Можно попробовать сделать компонент с нужным действием и настройками роли, и его уже выполнять в правиле.
Еще можно поэкспериментировать с пользователем, добавить uid = 1 и от него выполнять правило. Правда не уверен что без кода обойтись получится.
с выставлением прав не работает
добавление роли пользователя работает, но если тут же в правиле прописать снятие роли пользователя и вроде и стоит по порядку - добавить, поменять статус - снять, но не работает
Тогда только php.
сделал пока так:
добавляем роль (отдельная роль только для смены статуса), меняем статус и планируем компонент со снятием роли, который сработает в течении минуты (крон каждую минуту).
как-то так.
думаю за минуту не каждый заметит изменений. как меньше минуты сделать запуск крона не нашел. использую Elysia Cron