Drupal规则+一次性登录重定向问题

问题描述:

问题如下:Drupal规则+一次性登录重定向问题

我有一条规则,在登录后将用户重定向到登录页面。它工作正常。

但是,如果用户忘记密码,则会向他们发送指向一次登录页面的链接。他们点击按钮,并(因为我的规则)被发送到他们的着陆页。

问题当然是他们不能更改密码,因为正常的密码更改(在用户配置文件中)需要您知道密码才能更改密码。

那么我将如何修改我的重定向规则地说:

“重定向到登陆页面,除非到登录用户从一次性登录屏幕来了”或“重定向到登陆页面,除非目标URL与/用户启动/复位/ *(你可以通配符?)”

预先感谢任何提示

有一个路径规则模块和规则附赠模块,可以做到这一点很好在Drupal 6中。但不幸的是,它看起来像这个功能/模块不适用于Drupal 7.请参阅http://drupal.org/node/1506298http://drupal.org/node/1045964#comment-6016904

但是,您仍然可以使用PHP条件来检查路径。 尝试这个(添加一个新的条件,并使用PHP来添加这个,你将需要启用php模块)。 在该登录后用户重定向规则,

<?php 
if (arg(0) == 'user' && arg(1) == 'reset'){ 
    return FALSE; 
} 
else{ 
    return TRUE; 
} 
?> 

这将阻止规则持续,如果路径我们用户/ RESET/*。 此外,可能您需要与重定向密码更改用户的另一个规则中的TRUE False交换相同的条件。

你可以做到这一点与这样一个规则:

{ "rules_after_login_redirect_to_news" : { 
    "LABEL" : "After login redirect to news.", 
    "PLUGIN" : "reaction rule", 
    "WEIGHT" : "0", 
    "REQUIRES" : [ "rules" ], 
    "ON" : [ "user_login" ], 
    "IF" : [ 
     { "NOT text_matches" : { 
      "text" : [ "site:current-page:path" ], 
      "match" : "^user\/reset\/", 
      "operation" : "regex" 
     } 
     } 
    ], 
    "DO" : [ { "redirect" : { "url" : "news" } } ] 
    } 
} 

在我目前正在对我的项目遇到同样的问题。 我们通过使用上下文模块(http://drupal.org/project/context)解决了这个问题。

安装并启用上下文模块。 与条件创建上下文: 路径=〜用户/复位/ * (离开反应空)

使用此上下文中的登录重定向规则 的条件(上下文的规则/是设置上下文)

您也可以使用模块规则修复此问题,无需编码。

在我的情况下,我想在登录后将人员重定向到他们的工作台。 但忘记密码的人也会被重定向到他们的工作台,并且无法更改密码。他们必须导航到他们自己的个人资料页面,但他们必须重新输入密码:一次性日志记录不再有效。

所以这是我加入了规则:

活动 事件:用户登录

条件 元素:文本比较。 参数:Tekst:网站:当前页:路径],匹配的文本:用户,比较操作:页面重定向 参数:网址:管理/工作台,强制重定向:与

操作 元素结束假

我固定的只是用规则这个问题,因为在另一个答案概括这里,但我不得不修改它的工作,我不得不设置文本比较条件至负面,并在页面重定向强制重定向,以及页面我通缉被称为“入门”。完美的作品

所以我增加的规则: 活动 用户已经

条件 不是文本比较 参数记录:文字:[站点:当前页:路径],匹配的文本:用户,比较操作:开始与

行动 页面重定向 参数:网址:工具入门