添加检查用户角色是否已更改的规则?

时间:2009-09-07 10:09:31

标签: drupal

有没有办法在用户的角色发生变化时添加可以执行某项操作的规则?

3 个答案:

答案 0 :(得分:1)

我知道这已经晚了5年,但我只是必须解决这个问题,所以我会分享。规则模块可以完全做到这一点,但我花了一些时间来解决它:

为正在从转换的规则添加条件:

  1. 创建新规则并针对“React on Event”选择“在保存用户帐户之前”
  2. 添加新条件并选择“选择要添加的条件”选择“数据>列表包含项目”
  3. 在“数据选择器”下,您会看到“帐户未更改:角色”。将其粘贴到数据选择器字段中。
  4. 如果您看到“项目”的另一个数据选择器,请单击“切换到直接输入模式”按钮
  5. 选择您希望用户在更改角色之前拥有的角色组合。
  6. 然后为要转换的规则添加条件。除了步骤3和步骤3之外,这与上述相同。 5:

    • 3 - 而不是“帐户未更改:角色”选择“帐户:角色”
    • 5 - 选择您希望用户在更改角色后拥有的角色组合。

答案 1 :(得分:0)

我不知道触发器/操作模块或某些扩展模块是否提供此功能(可能值得检查),但如果没有,您可能需要为{{1}实现hook_user()操作。

您需要将$ edit值与$ account值进行比较,以检查角色的更改。请注意,此时此更改尚未“提交”,因此更新仍可能失败。根据您对角色更改的要求,您可能需要在$ edit数组中放置一些标记,以便稍后对成功提交做出反应(例如在'update'操作中)。

答案 2 :(得分:0)

只需创建一个"使用PHP代码" "现有用户帐户已更新"规则挂钩并输入以下PHP代码片段:

{{1}}

这将捕获任何角色的添加和删除,并在修改角色时返回true。