2014-10-01 25 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