2014-10-01 43 views
0

我试图在hook_user_presave()没有散列的情况下获得密码值,创建用户时我可以做到这一点,我只是在$account变量中得到它。但是当我编辑用户时,由于$account从数据库获得的数据在hash中传递到$account。那么我怎样才能获得简单的密码值?如何在Drupal 7中获取密码值?

这里是我的钩:

function hook_user_presave(&$edit, $account, $category) { 
    if (isset($account->pass)) { 
     $edit['field_clean_pass']['und'][0]['value'] = $account->pass; 
    } 
} 
+0

你在做什么,需要纯文本密码?您确定用户实际上是以您正在保存的表单输入密码吗?如果他们没有输入密码,没有合理的方式来获取纯文本版本的密码,因为它根本没有存储... – DCoder 2014-10-01 14:28:37

+0

管理员需要查看用户密码,因为他可以输入为数据库中的任何用户... – nowiko 2014-10-01 14:30:54

+0

纯文本密码未保存在数据库中,只有散列和盐渍版本。 – DCoder 2014-10-01 14:32:16

回答

1

如何Masquerade模块?

如果管理员需要以任何用户身份登录,则此模块就是您需要的。

0

如果你想要一个答案......你总是可以尝试的模块,允许网站所有者获得可读密码:https://www.drupal.org/project/aes

+0

嗯,我得到下一个错误'PDOException:在函数field_sql_storage_field_storage_write()(文件/ var/www/drupal中的451строка /modules/field/modules/field_sql_storage/field_sql_storage.module).' – nowiko 2014-10-01 14:53:53

+0

您是否完全阅读了项目页面并安装了依赖关系?发生此错误时? – Djouuuuh 2014-10-01 15:00:27

+0

当然,我启用了mcrypt php5模块,但你怎么看到它没有结果 – nowiko 2014-10-01 15:05:11