1

我正在使用 Drupal 7 + 规则 2,并希望创建一个规则,当用户的角色从一个角色更改为另一个角色时向用户显示一条消息。我正在尝试在数据比较条件下使用“帐户未更改”,但没有任何运气。我的配置如下,但是,使用“未更改”功能对我来说是陌生的,我不确定我是否走在正确的轨道上。

  • 事件:更新现有用户帐户后
  • 健康)状况:
    • 数据比较 - account-unchanged:roles等于RoleA
    • 数据比较 - account:roles等于RoleB
  • 行动:在网站上显示一条消息=角色已更改!!!

如前所述,在将拥有 RoleA 的用户更新为拥有 RoleB 时,这不会产生任何结果,并且在规则调试器中,条件总是被评估为 FALSE。

如果有比上述方法更好的替代/更好的方法,我将不胜感激切换到正确的轨道:)

非常感谢!

4

2 回答 2

2

能够回答我自己的问题!

  • 事件:更新现有用户帐户后
  • 健康)状况:
    • 数据 > 列表包含项目 - LIST: account-unchanged:roles, ITEM RoleA
    • 数据 > 列表包含项目 - 列表:帐户:角色,项目角色 B
  • 行动:在网站上显示一条消息=角色已更改!!!

如果您在角色从一个角色更改为另一个角色时特别想要一条消息,而不是简单地添加,请添加另一个条件但 NEGATE 它。在我的示例中,我将添加:

  • 数据 > 列表包含项目 - 列表:account-unchanged:roles、ITEM RoleB(检查 NEGATE)
  • 数据 > 列表包含项目 - 列表:帐户:角色、项目角色 A(检查 NEGATE)

请参阅https://groups.drupal.org/node/94379#comment-631148以供参考。我一直专注于那里的 VBO 答案,并将此评论与该方法结合使用,但仍然遇到了麻烦。刚才还想自己看……瞧!

希望这对某人有帮助!

于 2013-09-11T12:47:20.877 回答
1

除了 arikiera 的回答,如果您想检查用户是否已撤销角色,您可以使用:

  • 数据 > 列表包含项目 - LIST: account-unchanged:roles, ITEM RoleA
  • 数据 > 列表包含项目 - 列表:帐户:角色、项目角色 B(检查 NEGATE)

我用它向子用户模块添加了一些规则,如果父用户的角色被撤销,它将从父用户的子用户中删除特定角色。如果您正在构建一个具有可以添加自己的子用户的公司帐户的站点,这将非常有用。

于 2014-12-03T12:49:45.977 回答