Drupal规则+一次性登录重定向问题
问题如下:Drupal规则+一次性登录重定向问题
我有一条规则,在登录后将用户重定向到登录页面。它工作正常。
但是,如果用户忘记密码,则会向他们发送指向一次登录页面的链接。他们点击按钮,并(因为我的规则)被发送到他们的着陆页。
问题当然是他们不能更改密码,因为正常的密码更改(在用户配置文件中)需要您知道密码才能更改密码。
那么我将如何修改我的重定向规则地说:
“重定向到登陆页面,除非到登录用户从一次性登录屏幕来了”或“重定向到登陆页面,除非目标URL与/用户启动/复位/ *(你可以通配符?)”
预先感谢任何提示
有一个路径规则模块和规则附赠模块,可以做到这一点很好在Drupal 6中。但不幸的是,它看起来像这个功能/模块不适用于Drupal 7.请参阅http://drupal.org/node/1506298和http://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:网站:当前页:路径],匹配的文本:用户,比较操作:页面重定向 参数:网址:管理/工作台,强制重定向:与
操作 元素结束假
我固定的只是用规则这个问题,因为在另一个答案概括这里,但我不得不修改它的工作,我不得不设置文本比较条件至负面,并在页面重定向强制重定向,以及页面我通缉被称为“入门”。完美的作品
所以我增加的规则: 活动 用户已经
条件 不是文本比较 参数记录:文字:[站点:当前页:路径],匹配的文本:用户,比较操作:开始与
行动 页面重定向 参数:网址:工具入门