2013-09-11 6 views
1

Я использую Drupal 7 + Rules 2 и хотел бы создать правило, показывающее пользователю сообщение, когда их роль изменилась с одной роли на другую. Я экспериментировал с использованием «без учета учетной записи» в состоянии сравнения данных, но не имел никакой удачи. Моя конфигурация ниже, однако, использование «неизменной» функции мне чуждо, и я не уверен, что нахожусь на правильном пути.drupal управляет учетной записью пользователя без изменений

  • EVENT: После обновления существующей учетной записи пользователя
  • УСЛОВИЕ:
    • данных - Сравнение счетов-неизменной: роль равна RoleA
    • данных сравнения - счета: роли равно RoleB
  • ДЕЙСТВИЕ: Показать сообщение на сайте = Роль изменена !!!

Как указано выше, это не дало результатов при обновлении пользователя, у которого была RoleA, с RoleB, и в отладчике правил условия всегда оцениваются как FALSE.

Если есть альтернативный/лучший способ достичь этого, чем выше, я оценил бы быть переключен на правильном пути :)

Спасибо так много!

ответ

2

Был в состоянии ответить на мой вопрос!

  • EVENT: После обновления существующей учетной записи пользователя
  • УСЛОВИЕ:
    • данных> Список содержит элемент - LIST: счет-без изменений: роли, ITEM RoleA
    • данных> Список содержит пункт - LIST: account: role, ITEM RoleB
  • ДЕЙСТВИЕ: Показать сообщение на сайте = Роль изменена !!!

Если вы специально хотите сообщение, когда роль была изменена с одной на другую, а не просто добавлена, добавьте еще одно условие, но НЕГАТИВНО. В моем примере, я хотел бы добавить:

  • данных> Список содержит элемент - LIST: счет-без изменений: роли, ITEM RoleB (Check нивелируют)
  • данных> Список содержит элемент - LIST: счет: роли, ITEM RoleA (Check NEGATE)

См. https://groups.drupal.org/node/94379#comment-631148 для справки. Я сосредоточился на ответе VBO там и использовал этот комментарий в сочетании с этим подходом и все еще имел проблемы. Просто сейчас подумал, чтобы посмотреть на это сам ... и вуаля!

Надеюсь, это поможет кому-то!

1

В дополнение к ответу arikiera, в, если вы хотите, чтобы проверить, если пользователь имел роль отозвана вы можете использовать:

  • данных> Список содержит элемент - LIST: счет-без изменений: роли, ITEM RoleA
  • данных> Список содержит элемент - LIST: счет: роли, ITEM RoleB (Check нивелируют)

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

Смежные вопросы